Laravel 5.1, 传递我的ID
Laravel 5.1, passing my ID
我正在尝试传递过去的 ID 并将其插入另一个数据库。
我有一个页面显示 post 是这样的
/posts/{id}
。从那以后我想添加一个评论部分,所以我的表格设置如下:
<form method="POST" action="/posts/{{ $post->id }}/comments">
(当我检查代码时,它插入了正确的 ID 和“{{ $posts->id }}” 点。
在我的 routes.php 中,我得到了以下路线:
Route::post('/posts/{post}/comments', 'CommentsController@store');
在 CommentsController.php 里面我得到了以下内容
public function store(Post $post)
{
Comment::create([
'body' => request('body'),
'post_id' => $post->id
]);
return back();
}
每当我尝试添加评论时,我都会收到此错误消息:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'post_id'
cannot be null
当我将代码从 CommentsController.php 更改为:
'post_id' => "2"
它工作正常(但评论将始终添加到 post,ID 为 2)
我似乎无法找出为什么我的 id 不会进入低谷。
有什么帮助吗?
试试这个
public function store(Request $request, Post $post)
{
$comment= new Comment;
$comment->body = $request->body;
$comment->post_id = $post->id;
$comment->save();
return back();
}
路由模型绑定允许您将传递到路由中的 Post ID 转换为控制器方法中的实际 post 对象。如果你使用 post 和评论之间的关系,它甚至可以更顺畅地工作,像这样:
public function store(Request $request, Post $post)
{
$post->comments->create([
'body' => $request->body
]);
return back();
}
内部 post
模型
public function comments()
{
return $this->hasMany('App\Comment','post_id');
}
我正在尝试传递过去的 ID 并将其插入另一个数据库。
我有一个页面显示 post 是这样的
/posts/{id}
。从那以后我想添加一个评论部分,所以我的表格设置如下:
<form method="POST" action="/posts/{{ $post->id }}/comments">
(当我检查代码时,它插入了正确的 ID 和“{{ $posts->id }}” 点。
在我的 routes.php 中,我得到了以下路线:
Route::post('/posts/{post}/comments', 'CommentsController@store');
在 CommentsController.php 里面我得到了以下内容
public function store(Post $post)
{
Comment::create([
'body' => request('body'),
'post_id' => $post->id
]);
return back();
}
每当我尝试添加评论时,我都会收到此错误消息:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'post_id' cannot be null
当我将代码从 CommentsController.php 更改为:
'post_id' => "2"
它工作正常(但评论将始终添加到 post,ID 为 2) 我似乎无法找出为什么我的 id 不会进入低谷。
有什么帮助吗?
试试这个
public function store(Request $request, Post $post)
{
$comment= new Comment;
$comment->body = $request->body;
$comment->post_id = $post->id;
$comment->save();
return back();
}
路由模型绑定允许您将传递到路由中的 Post ID 转换为控制器方法中的实际 post 对象。如果你使用 post 和评论之间的关系,它甚至可以更顺畅地工作,像这样:
public function store(Request $request, Post $post)
{
$post->comments->create([
'body' => $request->body
]);
return back();
}
内部 post
模型
public function comments()
{
return $this->hasMany('App\Comment','post_id');
}