我正在Laravel 8中创建一个具有CRUD功能的简单博客网站。在使用过时的Laravel表单之前,我已经完成了此操作,但是现在尝试使用HTML表单来做到这一点。
但是,我在网站的更新部分遇到了一些问题。我有一个名为BlogsController的控制器,该函数被调用以更新数据库中的博客,当用户提交要更新的表单时应调用该控制器。
BlogsController更新功能
public function update(Request $request, $id)
{
$this->validate($request, [
'title' => 'required',
'body' => 'required',
'category' => 'required',
'description' => 'required',
'read_time' => 'required'
]);
$blog = Blog::find($id);
$blog->title = $request->input('title');
$blog->body = $request->input('body');
$blog->category = $request->input('category');
$blog->description = $request->input('description');
$blog->read_time = $request->input('read_time');
$blog->user_id = auth()->user()->id;
$blog->save();
return redirect('/dashboard')->with('success', 'Blog Updated');
}
表格需要定向到什么动作?
更新表格的顶部
<form method="POST" action="update">
在web.php中路由
Route::resource('blog', 'App\Http\Controllers\BlogsController');
Laravel形式的实现
{!! Form::open(['action' => ['App\Http\Controllers\BlogsController@update', $blog->id], 'method' => 'POST']) !!}
您可以通过运行获取所有应用程序路由和名称的列表
$ php artisan route:list
对于您的博客更新路线,您应该使用
<form method="POST" action="{{ route('blog.update', ['blog' => $blog]) }}">
@method('PATCH')
</form>
在您的模板中。
确保csrf
使用正确设置了令牌@csrf
,请参见Laravel文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句