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_slot
(product_id
、product_slot_id
に挿入)の値(1))
確かに。私は今それを更新します。 – AJStacy