我有 3 個表,分別稱為游戲、產品、游戲產品。game_product 是我的資料透視表
這是結構。
| ID | game_id | product_id |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 1 | 2 |
30 分鐘前我可以正確附加 game_id 和 product_id,然后我什么也沒做。在我嘗試創建新資料后,它給了我這個錯誤訊息
Call to a member function games() on null
這是我的模型關系
應用\模型\Game.php:
public function products()
{
return $this->belongsToMany('App\Models\Product', 'game_product', 'product_id', 'game_id');
}
應用\模型\產品.php:
public function games()
{
return $this->belongsToMany('App\Models\Game', 'game_product', 'game_id', 'product_id' );
這是我的創建控制器
public function productsNew(Request $request, $id)
{
$products = Product::find($id);
$new = Product::create([
'product_sku' => $request->product_sku,
'name' => $request->name,
'seller_price' => $request->seller_price,
'price' => $request->price,
'profit' => $request->price - $request->seller_price,
]);
$products->games()->attach($id);
$new->save();
notify("Product added successfully!", "", "success");
return redirect('admin/products/'.$id);
}
}
我嘗試將游戲和產品的 id 發布到資料透視表 game_id 和 product_id。我應該怎么做才能只存盤 ID 而沒有任何其他價值?
uj5u.com熱心網友回復:
只需更改順序
$products->games()->attach($id);
$new->save();
成為
$new->save();
$products->games()->attach($id);
作為旁注,您正在創建一個產品。只有1個產品。所以變數名不能是復數,因為它是單數。$product
最后一件事,如果此函式只是 CRUD 的一部分,請遵循命名函式的約定為:create/store/show/edit/update/destroy,讓您和其他人在提問時更輕松。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/430334.html
