我有两个表(订单和产品)和一个数据透视表(order_product)。 我已经使用以下代码建立了很多对很多的关系。
class Product extends Model{
protected $fillable = ['name', 'price', 'is_iframe_product'];
public function orders() {
return $this->belongsToMany(Order::class);
}
}
class Order extends Model{
public $guaded = ['id'];
protected $fillable = ['is_iframe_order','price', 'status', 'address_id','user_id'];
public function products () {
return $this->belongsToMany(Product::class);
}
}
我正在使用以下代码在CheckoutController.php中插入记录
$Product = array('name' => $item['item_name'], "price" => $item['price'], "is_iframe_product" => "1");
$saved = order()->products()->attach([$Product]);
但出现此错误:
例外:“ Symfony \ Component \ Debug \ Exception \ FatalThrowableError” 文件:“ C:\ wamp3 \ www \ jewellery \ jewellery \ app \ Http \ Controllers \ CheckoutController.php” 线:63 消息:“调用未定义函数App \ Http \ Controllers \ order()”
答案 0 :(得分:0)
您正在使用一个函数:... = order()->...
错误提示该函数不存在:Call to undefined function ... order()
您是要引用这样的变量吗? ... = $order->...
(我看不到控制器的其余部分,所以我不知道您在使用什么变量)
答案 1 :(得分:0)
这是做什么:
首先将产品保存到数据库中
$product = Product::create(array('name' => $item['item_name'], "price" =>$item['price'], "is_iframe_product" => "1"));
然后将保存的产品附加到产品的id
$saved = $order->products()->attach($product->id);
答案 2 :(得分:0)
您需要做的是先创建订单:
$order = new Order;
// set some attributes
$order->save();
然后,您可以附加指定的产品:
$product = Product::find(1);
$order->products()->attach($product->getKey());
如果要动态创建产品:
$product = Product::create(array('name' => $item['item_name'], "price" =>$item['price'], "is_iframe_product" => "1"));
$order->products()->attach($product->getKey());