【问题标题】:How can I insert the array value into my table by using Laravel Eloquent ORM?如何使用 Laravel Eloquent ORM 将数组值插入到我的表中?
【发布时间】:2019-01-24 12:10:56
【问题描述】:

下面是数组。我想通过 Laravel 雄辩的 ORM 系统将数组插入到我的“销售”表中。但是

$data = [
                'products' => [
                    'product_id' => ['1', '3', '4'],
                    'quantity' => ['5', '5', '4'],
                    'product_discount' => ['30', '0', '5'],
                    'discount_unit' => ['%', 'tk', '%'],
                ],

                'customer_id' => 1,
                'total_discount' => 50,
                'shiping_charge' => 10,
                'net_payable' => 5000,

                'payments' => [
                    'payment_method' => ['cash', 'card', 'check'],
                    'payment_amount' => ['500', '7000', '400'],
                ],
            ];

这是将数据插入到销售表中的 Eloquent 代码。

$sell = new Sell();

    $sell->sells_code = 'SCN-' . rand(time(), 1000);

    $sell->sells_date = date('Y-m-d');

    foreach ($data['products']['product_id'] as $value){
        $sell->product_id = $value . ",";
    }



    foreach ($data['products']['quantity'] as $value){
        $sell->product_quantity = $value . ",";
    }

    foreach ($data['products']['product_discount'] as $value){
        $sell->product_discount = $value . ",";
    }

    foreach ($data['products']['discount_unit'] as $value){
        $sell->product_discount_unit = $value . ",";
    }


    $sell->customer_id = $data['customer_id'];
    $sell->company_name = 'Undefined';
    $sell->warehouse_id = 1;
    $sell->total_discount = $data['total_discount'];

    $sell->shipping_address = 'Undefined Address';
    $sell->shipping_charge = 0;
    $sell->net_payable = $data['net_payable'];


    foreach ($data['payments']['payment_method'] as $value){
        $sell->payment_method = $value . ",";
    }

    foreach ($data['payments']['payment_amount'] as $value){
        $sell->payment_amount = $value . ",";
    }


    $sell->payment_date= date('Y-m-d');
    $sell->note = 'Nothing';
    $sell->sells_Status = 'Success';
    $sell->biller = 'Mahady';


    $sell->save();

您可以分享将数组值插入mysql数据库表的有效且最简单的方法吗?

【问题讨论】:

  • 您想要连接 product_id 而不是将其存储为适当的多对多关系?
  • 如何准确保存数据?
  • 这里不需要关系。我只想将数组中的数据插入到我的销售表中。

标签: mysql arrays laravel


【解决方案1】:

首先你没有连接 product_id,你实际上是在每次迭代中为 $sell->product_id 分配新值。

这对你有帮助

foreach ($data['products']['product_id'] as $value){
        $sell->product_id .= $value . ",";
}

或者您可以将此数组转换为 json 字符串,然后您可以将其存储在您的表列中

$sell->product_id = json_encode($data['products']['product_id'])

在从数据库中检索时,只需执行此操作,您将获得您的 id 数组

json_decode($sell->product_id)

【讨论】:

  • 您需要.= 进行字符串连接。 += 仅适用于 PHP 中的数字。
  • 是的,抱歉,只是一个拼写错误。
  • 非常感谢。 json_encode 和 json_decode 是最完美和最简单的方法。它正在工作。
猜你喜欢
  • 2016-03-16
  • 2019-08-01
  • 2020-03-24
  • 2014-04-17
  • 1970-01-01
  • 2013-12-24
  • 2014-11-15
  • 2012-09-24
  • 2017-04-07
相关资源
最近更新 更多