付费课程, 订阅后即可观看

如何绑定对象的多样化一对多关联关系

我们可以使用多种方式把多样化的一对多关系进行关联,无论如何操作,其核心里边就是把数据表数据项的外键进行关联,所以绑定对象关系时,不可拘泥于某一种形式,把握核心本质即可.Laravel提供了面向对象的方式绑定对象之间的关系,咱们就来看看如何用面向对象的方式绑定

邶城以北(叶兴勇) 2021.12.20 14:42

博主,我使用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)) 表中数据却也伪造成功了,是怎么回事呢?

微信扫码登录