付费课程, 订阅后即可观看
如何绑定对象的多样化一对多关联关系
我们可以使用多种方式把多样化的一对多关系进行关联,无论如何操作,其核心里边就是把数据表数据项的外键进行关联,所以绑定对象关系时,不可拘泥于某一种形式,把握核心本质即可.Laravel提供了面向对象的方式绑定对象之间的关系,咱们就来看看如何用面向对象的方式绑定
我们可以使用多种方式把多样化的一对多关系进行关联,无论如何操作,其核心里边就是把数据表数据项的外键进行关联,所以绑定对象关系时,不可拘泥于某一种形式,把握核心本质即可.Laravel提供了面向对象的方式绑定对象之间的关系,咱们就来看看如何用面向对象的方式绑定
博主,我使用factory方法构造comments数据,代码如下 public function definition() { $targets = collect([ Post::all()->random(), Video::all()->random() ] ); $target = $targets->random(); return [
//第一种绑定方式 'body' => $this->faker->sentence, 'target_id'=>$target->id, 'target_type'=>$target->getMorphClass()
/* //第二种绑定方式 $target->comments()->create( [ 'body' => $this->faker->sentence, ] )
//第三种绑定方式 $target->comments()->save(new Comment( [ 'body' => $this->faker->sentence, ]) ) */
]; } 第一种方式没问题,第二、三种 得到警告:SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'field list' (SQL: insert into `comments` (`0`, `updated_at`, `created_at`) values (602, 2021-12-20 14:41:17, 2021-12-20 14:41:17)) 表中数据却也伪造成功了,是怎么回事呢?