传递给Illuminate \ Database \ Query \ Builder :: update()的参数1必须是数组类型,字符串给定,调用

时间:2015-12-09 09:32:20

标签: php laravel laravel-5 laravel-5.1

我做错了什么..我得到这个错误..

传递给Illuminate \ Database \ Query \ Builder :: update()的参数1必须是类型数组,给定字符串,在第33行的C:\ xampp \ htdocs \ newlaravel \ app \ customer.php中调用并定义

控制器

public function siteadmin_customerupdate(Request $request,$id)
    {

        $cus_name = $request->input('first_name');
        //$facebook_id= $request->input('0');
        $cus_lname= $request->input('last_name');
        $cus_email= $request->input('email');


        $v=validator::make($request->all(),
                [

                ]
                );

        if($v->fails())
        {
            return redirect()->back()->withErrors($v->errors());
        }
        else
        {
            $data=array(

                'cus_name'=>$cus_name,
                //'facebook_id'=> $facebook_id,
                'cus_lname'=> $cus_lname,
                'cus_email'=> $cus_email,

            );

        }
         $return = customer::update_customer($data,$id);

模型

public static function update_customer($id,$data)
    {

     DB::table('le_customer')->whereIn('cus_id', $id)->update($data);   
    }

route.php

Route::get('siteadmin_editcustomer/{id}',   'SiteadminController@siteadmin_editcustomer'); 
   Route::post('siteadmin_customerupdate','SiteadminController@siteadmin_customerupdate');

3 个答案:

答案 0 :(得分:0)

您将传递给 update_customer 方法的参数的顺序混合在一起:

customer::update_customer($data,$id);

public static function update_customer($id,$data)

答案 1 :(得分:0)

传递了不匹配参数,并根据您的语句第一个打印变量传递给更新...

根据错误声明,它必须是数组..但字符串即将到来

答案 2 :(得分:0)

您的客户ID是字符串,请使用爆炸将其设置为 Array

DB::table('le_customer')->whereIn('cus_id', explode(',', $id))->update($data);