Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 质量分配插入雄辩的_Php_Laravel_Mass Assignment - Fatal编程技术网

Php 质量分配插入雄辩的

Php 质量分配插入雄辩的,php,laravel,mass-assignment,Php,Laravel,Mass Assignment,在Laravel 5.1中,我对插入使用质量赋值。但我想学习如何用雄辩的语言大量插入 我需要在订单流程中插入已售出的产品 这是我要插入的数据 foreach($cart['fields'] as $key => $product) { $orderDetailData[] = [ 'order_id' => $orderData['order_id'], 'product_id' =&g

在Laravel 5.1中,我对插入使用质量赋值。但我想学习如何用雄辩的语言大量插入

我需要在订单流程中插入已售出的产品

这是我要插入的数据

   foreach($cart['fields'] as $key => $product)
    {
        $orderDetailData[] = [
            'order_id'       => $orderData['order_id'],
            'product_id'     => $product['id'],
            'quantity'       => $product['total_quantity'],
            'price'          => floatval($product['wholesale_price']),
            'vat'            => $product['vat'],
            'vat_value'      => floatval($product['vat_value']),
            'discount_ratio' => $product['discount_ratio'],
            'discount'       => floatval($product['discount_value']),
            'total_amount'   => floatval($product['total_amount']),
        ];
    }
这是我的插入代码

(new OrderDetail)->create($orderDetailData);
我认为这种方法不支持批量插入

在拉威尔5.1曼努埃尔我看到了这一点

DB::table('table')->insert($orderDetailData);
批量插入的批量分配应该怎么做?我是否应该使用上一个(DB facade)

因为我得到了这个代码的错误(500内部服务器错误)

(new OrderDetail)->create($orderDetailData);

要使用质量赋值插入/creae,您可以在您的
Eloquent
模型中声明一个数组,如下所示:

protected $fillable = [
    'order_id',
    'product_id',
    'quantity',
    'more fields names here...'
];
将插入已定义的字段名。查看更多信息。也可以使用允许质量分配的方法


此外,
500内部服务器错误
对于特定错误并不明显,因此请找出它。

要使用批量分配插入/creae,您可以在您的
elount
模型中声明一个数组,如下所示:

protected $fillable = [
    'order_id',
    'product_id',
    'quantity',
    'more fields names here...'
];
将插入已定义的字段名。查看更多信息。也可以使用允许质量分配的方法


此外,
500内部服务器错误
对于特定错误并不明显,因此请找出它。

这是一个示例,您可以创建数据数组,并在此处以相同的方式插入数据

$data = array(
    array(
        'name'=>'Coder 1', 'rep'=>'4096',
        'created_at'=>date('Y-m-d H:i:s'),
        'modified_at'=> date('Y-m-d H:i:s')
       ),
    array(
         'name'=>'Coder 2', 'rep'=>'2048',
         'created_at'=>date('Y-m-d H:i:s'),
         'modified_at'=> date('Y-m-d H:i:s')
       ),
    //...
);

YourModelName::create($data);

这是一个示例,您可以创建数据数组,并可以按同样的方式插入数据

$data = array(
    array(
        'name'=>'Coder 1', 'rep'=>'4096',
        'created_at'=>date('Y-m-d H:i:s'),
        'modified_at'=> date('Y-m-d H:i:s')
       ),
    array(
         'name'=>'Coder 2', 'rep'=>'2048',
         'created_at'=>date('Y-m-d H:i:s'),
         'modified_at'=> date('Y-m-d H:i:s')
       ),
    //...
);

YourModelName::create($data);

你可以那样插入

$data = array(
array('name'=>'Coder 1', 'rep'=>'4096'),
array('name'=>'Coder 2', 'rep'=>'2048'),
//...
);
OrderDetail::insert($data);
也使这些文件可填充

protected $fillable = [
'name',
'rep_id',
];

你可以那样插入

$data = array(
array('name'=>'Coder 1', 'rep'=>'4096'),
array('name'=>'Coder 2', 'rep'=>'2048'),
//...
);
OrderDetail::insert($data);
也使这些文件可填充

protected $fillable = [
'name',
'rep_id',
];

错误是什么?当您手动设置字段时,为什么会担心批量分配?当人们想要执行类似于
Model::create($request->all())
的操作时,批量分配是一个问题,而不是当他们手动指定添加哪个字段时。错误是什么说
500 internal server error
?当您手动设置字段时,为什么会担心批量分配?当人们想做类似于
Model::create($request->all())
的事情时,批量分配是一个问题,而不是当他们手动指定添加哪个字段时。我已经使用了filleble。但我不知道我可以静态调用OrderDetail模型的方法。@CihanKüsmez是的,你可以静态调用控制器中的每个模型方法?@CihanKüsmez是的,你可以已经使用fillable。但我不知道我可以静态调用OrderDetail模型的方法。@CihanKüsmez是的,你可以静态调用staticlycan静态调用控制器中的每个模型方法?@CihanKüsmez是的,你可以