Laravel建立資料模型,建立表之間的關係
阿新 • • 發佈:2019-01-11
1、建立資料模型 (1)瀏覽器上輸入phpmyadmin.local新建task資料庫(在虛擬機器中新建task資料庫) (2)新建模型的方法,輸入命令php artisan make:model Project (新建一張模型表,新建的model在 app資料夾下) php artisan make:model Project -m(建立模型,並生成遷移檔案,如果不加-m, 還可以通過php artisan make:migration,生成遷移檔案) (3)資料表的遷移, php artisan migrate:status # 檢視資料表的遷移狀態 php artisan make:migration # 生成migrations遷移檔案(相當於Python的 makemigrations) php artisan migrate # 將database/migrations下的檔案遷移到資料庫,生成對應的表 php artisan migrate:rollback # 撤銷上一步的migrate遷移操作 (4)開發過程中更改資料結構(不rollback,不刪除資料庫的原始資料) 新建一個migration檔案,projects進行操作 php artisan make:migration 對錶更改的描述 --table=projects(指定哪一張表) php artisan migrate 對映到資料庫 (5)如果你在開發階段,你就可以通過:php artisan migrate:refresh 撤回所有的操作,重新編譯對映 到資料庫表 2、定義表與表之間的關係: (1)定義User和Project的關係(一個使用者對應多個專案) # 新增到User.php檔案裡 public function projects(){ return $this->hasMany('App\Project'); } (2)定義Project和User的關係(一個專案對應一個使用者) # 新增到Project.php檔案裡 public function user(){ return $this->belongsTo('App\User', user_id); } (3)定義哪些欄位可以被操作 # 新增到Project.php檔案裡 protected $fillable = [ 'name', 'thumbnail' ]; (4)在ProjectsController裡 public function store(Request $request){ // 通過關係儲存資料,不用再單獨存user_id欄位,已經自動儲存了 $request->user()->projects()->create([ 'name'=> $request->name, 'thumbnail'=> $request->thumbnail ]); // 如果不通過關係,就需要手動新增user_id欄位 //Project::create([ // 'name'=> $request->name, // 'thumbnail'=> $request->thumbnail, // 'user_id'=> $request->user()->id //]); return '儲存成功'; }