我有一个包含大量文章的页面。我想让用户能够喜欢'一篇文章,并将像id一样存储到数据库中以便以后重用。我是Laravel和Php的新手,所以这就是我所拥有的。
我有文章和类似的模型。我在公共商店ArticleController中有这个。
public function store()
{
$article = new Article();
$article->body = 'new article body';
$article->title = 'new article Title';
$article->type = 'fashion';
$article->save();
$request = Request::all();
$likes = new Like();
$likes->user_id = Auth::user()->id;
$likes->article_id = $article->id;
$likes->save();
return redirect('article');
}
我遵循了关于laravel基础知识的教程,但我想我错过了一些东西。这对我有用。但现在我想改变它,以便它只需要现有的文章,而不是一个新的文章。当我改变它以反映这一点:
$article = Article::find($id);
它告诉我$ id未定义。那么我如何让$ id指向用户想要的文章'喜欢'?
答案 0 :(得分:0)
问题是So how do i make $id point to the article the user wants to 'like'?
这是一个非常大/广泛的问题,但我会尝试sumarize。首先,您需要一条路线,例如:
Route::get('article/like/{id}', 'ArticleController@like');
然后在ArticleController
声明like
方法,例如:
public function like($id)
{
// Now you can use $id
}
为了澄清您,路线中的{id}
将从id
获取文章的URI
,因此您可以使用URI
这样的内容:
http://example.com/article/like/10 // Here 10 is the article id
所以这就是这个想法,现在实现它并修改URI
或者你需要什么来使它适合你的项目,但要记住,如果你想将id传递给你的URI
然后你必须在声明路由时使用路由参数(例如:{id}
),你的方法应该使用方法头中的参数来接收该参数,即:public function like($id)
。