Laravel 8表单更新数据库

托马斯·里德

我正在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章