關於Laravel基礎Migrations的解析

來源:互聯網
上載者:User

一、Migration建立資料表與Seeder資料庫填充資料

資料庫遷移就像是資料庫的 版本控制,可以讓你的團隊輕鬆修改並共用應用程式的 資料庫結構

1.1 建立遷移

php artisan make:migration create_users_table --create=usersphp artisan make:migration add_votes_to_users_table --table=users //添加欄位

新的遷移檔案會被放置在 database/migrations 目錄中。每個遷移檔案的名稱都包含了一個時間戳記,以便讓 Laravel 確認遷移的順序。
--table--create 選項可用來指定資料表的名稱,或是該遷移被執行時是否將建立的新資料表。

1.2 遷移結構

遷移類通常會包含兩個方法:updownup 方法可為資料庫添加新的資料表、欄位或索引,而 down 方法則是 up 方法的逆操作。可以在這兩個方法中使用 Laravel 資料庫結構產生器來建立以及修改資料表。

1.2.1 建立資料表

/**     * 運行資料庫遷移     *     * @return void     */    public function up()    {        Schema::create('flights', function (Blueprint $table) {            $table->increments('id');            $table->string('name')->comment('欄位註解');            $table->string('airline')->comment('欄位註解');            $table->timestamps();        });    }    /**     * 復原資料庫遷移     *     * @return void     */    public function down()    {        Schema::drop('flights');    }

1.2.2 為表添加欄位

資料表、欄位、索引:https://laravel-china.org/doc...

1.3 運行遷移

運行所有未完成的遷移:php artisan migrate

1.4 復原遷移

復原最後一次遷移,可以使用 rollback 命令:

php artisan migrate:rollbackphp artisan migrate:rollback --step=5 //復原遷移的個數php artisan migrate:reset //復原應用程式中的所有遷移php artisan migrate:refresh // 命令不僅會復原資料庫的所有遷移還會接著運行 migrate 命令php artisan migrate  //恢複

1.5 使用Seeder方式向資料庫填充資料

1.5.1 編寫 Seeders

php artisan make:seeder UsersTableSeeder

1.5.2 資料庫填充

 /**     * 運行資料庫填充     *     * @return void     */    public function run()    {        DB::table('users')->insert([            'name' => str_random(10),            'email' => str_random(10).'@gmail.com',            'password' => bcrypt('secret'),        ]);    }

利用模型工廠類來大量建立測試資料

php artisan make:factory PostFactory -m Post // -m 表示綁定的model

1.5.3 調用其他 Seeders

DatabaseSeeder 類中,你可以使用 call 方法來運行其他的 seed 類。

/** * Run the database seeds. * * @return void */public function run(){    $this->call([        UsersTableSeeder::class,        PostsTableSeeder::class,        CommentsTableSeeder::class,    ]);}

1.5.4 運行 Seeders

預設情況下,db:seed 命令將運行 DatabaseSeeder 類,這個類可以用來調用其它 Seed 類。不過,你也可以使用 --class 選項來指定一個特定的 seeder 類:

php artisan db:seedphp artisan db:seed --class=UsersTableSeeder

你也可以使用 migrate:refresh 命令來填充資料庫,該命令會復原並重新運行所有遷移。這個命令可以用來重建資料庫:

php artisan migrate:refresh --seed

二、模型

建立模型:

php artisan make:model Models/Goodsphp artisan make:model Models/Goods -m  //同時產生對應的migration檔案

三、路由

大量建立路由:(資源路由)

php artisan make:controller UserController --resourceRoute::resource('user', 'UserController'); //批量一次性定義`7`個路由

根據唯一欄位值來擷取詳情,利於SEO

Laravel 5.5 Nginx 配置:
root /example.com/public;
location / {

    try_files $uri $uri/ /index.php?$query_string;}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }

四、驗證

4.1 快速驗證

4.2 表單請求驗證

php artisan make:request StoreBlogPost

區別與注意

1. find 和 get

find: 通過主鍵返回指定的資料

$result = Student::find(1001);

get - 查詢多條資料結果

DB::table("表名")->get();DB::table("表名")->where(條件)->get();

2.模型與資料表的綁定

建立Model類型,方法裡面聲明兩個受保護屬性:$table(表名)和$primaryKey(主鍵)

<?phpnamespace App;   use Illuminate\Database\Eloquent\Model;class Student extends Model{    protected $table = 'student';    protected $primaryKey = 'id';}

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.