为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据 laravel 复选框值更新数据库

如何根据 laravel 复选框值更新数据库

PHP
海绵宝宝撒 2022-05-27 13:16:22
我从数据库加载复选框,它们是否被选中,<div class="row">    <div class="col-xs-12">        <div class="form-group">            @php                $json = $orders->data;                $json = json_decode($json, true);                $products = $json['order_info']['products'];                $data = '';                    foreach ($products as $hitsIndex => $hitsValue) {                        $data .= $hitsValue['type']. ', ';                    }                $data = rtrim($data, ', ');                $agosProducts = Utility::constant('agos_products1');            @endphp            {{Html::validation($orders, 'product')}}            <label for="products" class="control-label">{{Translator::transSmart('app.Products', 'Products')}}</label><br><br>            @foreach($agosProducts as $product)                <label class="control-label "for="{{ $product['type'] }}">                    <input id="{{ $product['type'] }}" name="{{ $product['type'] }}" type="checkbox" value="{{ $product['type'] }}"                           @foreach ($products as $hitsIndex => $hitsValue)                                @if(in_array($hitsValue['type'], $product)) checked=checked @endif                           @endforeach                    >                    {{ $product['name'] }}                </label>                <br>            @endforeach        </div>    </div></div>现在我想根据复选框值更新我的数据库。例如,如果说我从数据库中加载复选框 1,而现在它未选中,我需要在数据库中更新它。此代码我可以获得复选框的所有当前状态,但我不知道此代码的先前值。因此很难更新当前值的状态并在数据库中添加新状态,$chks = array('multicolor','resizable','showRuler','namesNumbersEnabled');foreach ($chks as $chk) {   $product->setAttribute($chk, (Input::has($chk)) ? true : false);}这是我保存在数据列中的 json 对象我加载 [order_info][products][type] 作为检查的产品,同时我从 env 文件加载所有产品。我只需要将选中的复选框产品保存在数据库中。有人可以帮助我吗?
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

这是我为我的问题所做的完整工作解决方案!


public function edit($id, $attributes){


        $orders = (new Agos())->load($id);

        $json = $orders->data;

        $json = json_decode($json);


        $checkedit= $attributes['check_list'];


        if (is_array($checkedit) || is_object($checkedit))

        {

            foreach($checkedit as $chked1){


                $exists = false;

                foreach($json->products as $key => $val)

                {

                    // update if products exists

                    if($val->type == $chked1) {

                        $val->status = 'true';

                        $exists = true;

                    }


                    if(array_key_exists('status', $val)) {}

                    else{ $val->status = 'false';}


                }


                if($chked1 == 'FIN_REPORTING')

                {

                    $name = 'Finance reporting & book keeping';

                }

                elseif ($chked1 == 'FIN_ADVISORY')

                {

                    $name = 'Finance Advisory';

                }

                elseif ($chked1 == 'PAYROLL_HRDB')

                {

                    $name = 'PAYROLL_HRDB';

                }

                elseif ($chked1 == 'HR_ELEAVE')

                {

                    $name =   'HR E-Leave';

                }

                else

                {

                    $name = 'HR E-Claim';

                }


                //if products not exists add new products

                if(!$exists) {


                    $newproduct = new \stdClass();

                    $newproduct->type = $chked1;

                    $newproduct->name = $name;

                    $newproduct->is_fixed_price = false;

                    $newproduct->currency = "MYR";

                    $newproduct->status = "true";

                    array_push($json->products, $newproduct);

                }

            }

        }


        //remove all products that have status = false

        foreach($json->products as $index => $product) {

            if ( $product->status == "false") {

                unset($json->products[$index]);

            }

        }

        $json->products = array_values($json->products);

        json_encode($json, JSON_PRETTY_PRINT);



        //remove status element from products

        foreach($json->products as $index => $product) {


                unset($product->status);


        }

        $json->products = array_values($json->products);

        json_encode($json, JSON_PRETTY_PRINT);


        $json->google_drive_url= $attributes['data'];

        $json->remark= $attributes['remark'];

        $json->status= $attributes['status'];

        $json->total_invoices= $attributes['total_invoices'];

        $json->total_staffs= $attributes['total_staffs'];

        $json1 = json_encode($json);


        $status = $attributes['status'];

        $total_price = str_replace(',','', $attributes['total_price']);


        DB::table('orders')

            ->where('id', $id)

            ->update(['data' => $json1,'status' => $status, 'price' => $total_price]);


    }



查看完整回答
反对 回复 2022-05-27
  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号