一、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 遷移結構
遷移類通常會包含兩個方法:up
和 down
。up
方法可為資料庫添加新的資料表、欄位或索引,而 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!