【发布时间】:2021-04-27 22:31:39
【问题描述】:
我正在 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']) !!}
【问题讨论】:
-
这个库已从核心中移除并由 laravel 集体接管:laravelcollective.com/docs/6.x/html