定义对象Laravel

时间:2015-07-21 15:23:43

标签: php mysql laravel

我有一个包含大量文章的页面。我想让用户能够喜欢'一篇文章,并将像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指向用户想要的文章'喜欢'?

1 个答案:

答案 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)