2016-08-17 9 views
3

product_slotに製品をアタッチしようとしている次のコードがあります。多対多アタッチ機能ヌルIDを送信する

$product_slot = new ProductSlot; 
$product_slot = $product_slot->where('type', $slot['id'])->first(); 

$product = new Product; 
$product = $product->where('type', (String)$allowed_product)->first(); 

$product->productSlots()->sync([$product_slot->product_slot_id]); 

私はgetAttributes()を行うことができますし、両方には、以下を返します。ここでは

array (size=6) 
    'product_slot_id' => int 1 
    'type' => string 'breakfastplatter1' (length=17) 
    'default_product_id' => string 'bigbfhotcakebiscplat_3590' (length=25) 
    'allow_empty' => int 0 
    'created_at' => string '2016-08-17 19:04:41' (length=19) 
    'updated_at' => string '2016-08-17 19:04:41' (length=19) 

array (size=7) 
    'product_id' => int 185 
    'type' => string 'bigbfhotcakebiscplat_3590' (length=25) 
    'label' => string 'Big Breakfast with Hot Cakes (Biscuit)' (length=38) 
    'min_option_slots' => int 0 
    'max_option_slots' => int 0 
    'created_at' => string '2016-08-17 19:05:40' (length=19) 
    'updated_at' => string '2016-08-17 19:05:40' (length=19) 

は、製品モデルの関係である:

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Product extends Model 
{ 
    protected $fillable = ['type', 'label', 'min_option_slots', 'max_option_slots']; 

    public function productSlots() 
    { 
     return $this->belongsToMany('App\ProductSlot'); 
    } 
} 

しかし、私はこれらのモデルを一緒に同期しようとすると、次のエラーが発生します。

SQLSTATE [23000]:整合性制約違反:1048カラム 'のproduct_id' はNULLにすることはできません(SQL:product_product_slotproduct_idproduct_slot_idに挿入)の値(1))

+0

確かに。私は今それを更新します。 – AJStacy

答えて

2

あなたがいますidをプライマリキーとして使用するLaravel規約の代わりにカスタムプライマリキー名を使用します。お使いのモデルにこれを追加してみてください:

class Product { 
    public $primaryKey = 'product_id'; 
} 

class ProductSlot { 
    public $primaryKey = 'product_slot_id'; 
} 

はまた、あなたはLaravelの規則に従わない場合、あなたはまた時々関係の関数を定義するときに非標準プライマリキーを指定する必要があることに注意してください。

public function productSlots() 
{ 
    return $this->belongsToMany('App\ProductSlot', 'product_slot_id', 'product_id'); 
} 
+1

それは働いた!ありがとう! – AJStacy

関連する問題