【发布时间】:2017-10-14 22:59:56
【问题描述】:
我正在尝试在 Laravel 中编写一个测试用例。我发现here 如何为两个模型之间的多对多关系创建虚拟数据。但我找不到如何向数据透视表添加属性。
这里是一个例子:
我们有一个模型user 和一个模型car。每个用户可以驾驶多辆汽车,每辆汽车可以由多个用户驾驶,我们想要捕获每个用户驾驶每辆汽车的里程数。
users表
id | name
1 | Bob
2 | Alice
cars表
id | name
1 | Red Car
2 | Blue Car
car2user关系表
id_user | id_car | miles
1 | 1 | 20
2 | 2 | 4
如何创建这样的测试用例?我试过了
$user = factory(\App\User::class)->create(['name' => 'Bob'])->first();
$user->cars()->save(factory(\App\Car::class)->create(['name' => 'Red Car']));
但这会引发错误:
一般错误:1364 字段“英里”没有默认值
我接受此错误消息,因为我没有在任何地方指定必填字段 miles 的值。但是我在哪里可以提供这个价值呢?
【问题讨论】:
标签: php mysql laravel laravel-5 eloquent