2
votes

I've got an error that says :

Too few arguments to function App\Http\Controllers\RakController::update(), 1 passed and exactly 2 expected

Here's the codes that I have :

public function update(Request $request, $id)
{
    $data=Rak::find($id);
    $data->kode_rak=$request->get('kode_rak');
    $data->server=$request->get('server');
    $data->os=$request->get('os');
    $data->ip=$request->get('ip');
    $data->masa_berlaku=$request->get('masa_berlaku');
    $data->merek=$request->get('merek');
    $data->type=$request->get('type');
    $data->save();
    return redirect ('/d_rak');
}

And this is the overall preview :
enter image description here

What did I miss here, any help is appreciated

3
try $data->update(); instead - Mike Ross
show us your form too - Ilham Syahru Ramadhan
The update function seems to be in your controller and with the $id variable, you should have one route parameter (like {id} in your route) to be given to this function. Check your route rule or include it in your question so people can answer you. - Ali Khalili
Can you share your target route? - Aditya Thakur

3 Answers

1
votes

You could skip the $id parameter, and get it inside the controller using the $request parameter :

public function update(Request $request)
{
    $id = $request->id;
    $data=Rak::find($id);
    $data->kode_rak=$request->get('kode_rak');
    $data->server=$request->get('server');
    $data->os=$request->get('os');
    $data->ip=$request->get('ip');
    $data->masa_berlaku=$request->get('masa_berlaku');
    $data->merek=$request->get('merek');
    $data->type=$request->get('type');
    $data->save();
    return redirect ('/d_rak');
}
0
votes

Try 1:

Check The Used Class must be Illuminate\Http\Request;

Try 2 : Helper Request Function :

public function update($id)
{
    $data=Rak::find($id);

    $data->kode_rak = Request()->get('kode_rak');
    $data->server = Request()->get('server');
    $data->os = Request()->get('os');
    $data->ip = Request()->get('ip');
    $data->masa_berlaku = Request()->get('masa_berlaku');
    $data->merek = Request()->get('merek');
    $data->type = Request()->get('type');

    $data->save();
    return redirect('/d_rak');
}

And if it didn't work print func_get_args() in update function for see your passed args

0
votes

Check your URL example:

http://{yourdomain}/update/{your_id}

in POST ROUTE. And if {ID} isn't required then define it as not required arrgument as,

public function update(Request $request, $id="")
{
    $data=Rak::find($id);
    $data->kode_rak=$request->get('kode_rak');
    $data->server=$request->get('server');
    $data->os=$request->get('os');
    //your code

This will solve your few arguments error for update method.