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