首页 > 解决方案 > 如何在 Laravel 中更新

问题描述

我在我的 Laravel 应用程序中实施更新时遇到了一些问题。在我的刀片文件中,我有一个模式,在其中显示 . 每一行作为一个按钮,打开另一个模式,每个字段都应该更新。所以这是刀片文件:

<form action="{{ action('AnamController@update', $par->id_par) }}" method="put" class="form-horizontal">
    {{csrf_field()}}
    <input name="input_name" value="Par" hidden />

    <div class="col-lg-12">
        <div class="form-group">
            <label class="control-label col-lg-4">Name:</label>
            <div class="col-lg-6">
                <input id="name" name="name" type="text" class="form-control" value="{{$par->name}}"/>
            </div>
        </div>
    </div>
    <!--other things-->
</form>

但这返回给我一个错误。“此集合实例上不存在属性 [id_par]”,如果我在按下按钮编辑以打开模式时插入一个 foreach 语句,我总是会看到数据库中存在的第一个字段。那我该怎么办?

谢谢

编辑 这是路线:

Route::post('/anam/{id}, AnamController@update')->name('anam');

编辑 2 我尝试实现更新功能以查看更新是否有效。但我有错误 MethodNotAllowedHttpException

这是我写的:

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

    $par = Par::find($id);
    $par->name = $request->input('name');
    $par->save();

    return redirect('/anam');
}

标签: phplaravel

解决方案


首先对于更新,您需要更改form元素方法应该是post,然后在表单中@method('put')为较新的 laravel 版本或较旧的版本添加刀片指令{{ method_field('PUT') }}

请分享更多代码,而不仅仅是视图,这样我们就可以看到导致错误的原因。


推荐阅读