Laravel创建数据模型,创建表之间的关系

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33867131/article/details/86245454
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 '保存成功';
   }

猜你喜欢

转载自blog.csdn.net/qq_33867131/article/details/86245454