0
votes

What im doing wrong..im getting this error..

Argument 1 passed to Illuminate\Database\Query\Builder::update() must be of the type array, string given, called in C:\xampp\htdocs\newlaravel\app\customer.php on line 33 and defined

Controller

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);

Model

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

3 Answers

1
votes

You mixed up order of arguments you pass to update_customer method:

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

public static function update_customer($id,$data)
0
votes

Mismatch argument passed and as per your statement first print variable you are passing to update ...

As per error statement it must be array ..but string is coming

0
votes

Your customer id is coming string make it Array using explode.

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