0
我试图写在Laravel测试用例。我发现here如何创建一个虚拟的许多数据,两款车型之间的许多关系。但我找不到如何将数据添加到数据透视表。Laravel测试:添加属性的数据透视表
下面的例子: 我们有一个模型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']));
但这引发错误:
General error: 1364 Field 'miles' doesn't have a default value
我接受此错误消息,因为我没有任何地方指定必填字段miles
值。但我可以在哪里提供这个价值?
哦,现在我明白了! save方法与我用于我的雄辩查询的方法相同,因为我在关系'cars()'上调用它。我想保存方法是使用PHPUnit很特别,这整个电话是我的一个黑匣子..唯一的区别是,我称之为有假货示范雄辩的方法。这太好了!谢谢! – Adam