私の製品ごとにいくつかのオプションといくつかの仕様を取得しようとしています。Laravel Sync定義されていないメソッドを呼び出す Database Query Builder
$options = Option::all();
$suboptions = Suboption::all();
$specifications = Specification::all();
$subspecifications = Subspecification::all();
return view('admin.products.create', compact('options', 'suboptions', 'specifications', 'subspecifications'));
:私はこれは私の作成方法であり、それは、製品のIDと
options
+
subspecifications
のIDを取得しproduct_suboptions
とproduct_subspecifications
という名前第三のテーブルを作成しなければならなかった代わりに、1の複数の値を取得するために
これは私の店の方法であって、私のモデルで
public function store(Request $request)
{
//.........
$product->save();
$product->suboptions()->sync($request->suboptions, false);
$product->subspecifications()->sync($request->subspecifications, false);
return ......//
}
この関係:
Product
public function option(){
return $this->belongsToMany(Option::class);
}
public function suboption(){
return $this->belongsToMany(Suboption::class);
}
public function specification(){
return $this->belongsToMany(Specification::class);
}
public function subspecification(){
return $this->belongsToMany(Subspecification::class);
}
Option
public function products(){
return $this->belongsToMany(Product::class);
}
Suboption
public function products(){
return $this->belongsToMany(Product::class);
}
Specification
public function products(){
return $this->belongsToMany(Product::class);
}
Subspecification
public function products(){
return $this->belongsToMany(Product::class);
}
さて問題は、私は、製品を保存するとき、それは未定義のメソッドを照らし\データベースにこのエラー
を返すですBadMethodCallException コール\クエリー\ビルダー::サブオプション()
私の製品のみを保存しますが、product_suboptions
とproduct_subspecifications
テーブルには何も保存しません。
あなたは 'サブオプション'を 'product.php'に持っていますが、あなたは'サブオプション 'を呼び出しています。 'サブオプション 'を'サブオプション'に変更してもう一度やり直してください – usrNotFound
@usrNotFoundは同じ結果です。 – mafortis