laravel编辑和更新不起作用

时间:2017-07-11 07:53:26

标签: laravel

我有CRUD日期简单。但我无法使用更新方法。

这是我的控制器

public function show(Customer $customer)
{
    return view('customer.show',compact('customer'));

}


public function edit(Customer $customer)
{
    return view('customer.edit', compact('customer'));

}

public function update(CustomerRequest $request, Customer 
$customer,$id)
{
    $customer = Customer::find($id)->update($request->all());

    return redirect()->route('customer.index',compact('customer'));
}

这是我的观点

 <form method="POST" action="{{route('customer.update',$customer->id ) }}">
            {{--{{dd($customer)}}--}}
            {{method_field('PUT')}}

                {{ csrf_field() }}

                <div class="form-group">
                    <label for="firstName">Voornaam</label>
                    <input type="text" class="form-control"  name="firstName" value="{{$customer->firstName}}">
                </div>

                <div class="form-group">
                    <label for="lastName">Achternaam</label>
                    <input type="text" class="form-control"  name="lastName" value="{{$customer->lastName}}">
                </div>

                <div class="form-group">
                    <label for="email">Email</label>
                    <input type="email" class="form-control"  name="email" value="{{$customer->email}}">
                </div>

                <div class="form-group">
                    <label for="phone">Telefoonnummer</label>
                    <input type="text" class="form-control"  name="phone" value="{{$customer->phone}}">
                </div>


                <div class="form-group">
                    <button type="submit" class="btn btn-primary">Update</button>
                </div>
            </form>

我可以进入编辑页面。但是,在更改数据后没有任何改变它看起来像我想念保存在某处但我不知道,现在我得到那个错误too few arguments to function New Controller ::update () 2 passed and exactly 3 expected.

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

变化:

public function update(CustomerRequest $request, Customer $customer,$id)

要:

public function update(CustomerRequest $request, $id)

或者:

public function update(CustomerRequest $request, Customer $customer)

使用最后一个,您可以删除Customer::find($id),然后使用$customer

修改 如果查看更新路由:route('customer.update',$customer->id ),您会看到它只需要1个参数。控制器需要2,因为一个是请求,另一个是ID。