【发布时间】:2018-11-12 13:46:07
【问题描述】:
我正在为我的帖子创建一个编辑页面。我宁愿创建一个 html 表单而不是使用 FORM:: 所以我可以真正学习。当我尝试将数据提交到正确的控制器方法时遇到问题。
我正在使用的教程说要使用
{!! Form::open(['action' => ['PostsController@update', $post->id], 'method' => 'POST'])!!}
利用我有限的知识,我尝试将其重新创建为
<form action="{!! Route::post('/posts', ['PostsController@update', $post->id]) !!}" method="POST">
在下面我都在使用<input name="_method" type="hidden" value="PUT">
我得到的错误是`"
类 Illuminate\Routing\Route 的对象无法转换为 字符串(查看: /Users/Chris/code/chris/resources/views/posts/edit.blade.php)
我的 web.php 文件有 Route::resource('posts', 'PostsController'); 直到现在它仍然适用于其他所有内容。在我的控制器中,我的更新方法有
public function update(Request $request, $id)
{
$this->validate($request, [
'title' => 'required',
'body' => 'required'
]);
// Create Post
$post = Post::find($id);
$post->title = $request->input('title');
$post->body = $request->input('body');
$post->save();
return redirect('/')->with('success', 'Post Updated');
}
为我的信息提交更新的正确操作是什么?
提前非常感谢!
【问题讨论】:
-
Route::post用于定义路由,而不是获取路由路径,您只是定义了一个新路由并返回一个Route对象,然后您尝试回显该对象。 -
你使用的是什么版本的 Laravel?