2015-07-21 68 views
0

我有一個包含大量文章的頁面。我想讓用戶能夠「喜歡」一篇文章,並將其存儲爲數據庫以供日後重用。林新Laravel和Php,所以這裏是我的。定義對象Laravel

我有文章和類似的模型。我在公共商店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

的問題是So how do i make $id point to the article the user wants to 'like'?

這是一個相當大的/廣泛的問題,但我會盡力sumarize。首先,你需要一個途徑,例如:

Route::get('article/like/{id}', '[email protected]'); 

然後在你的ArticleController聲明like方法,例如:

public function like($id) 
{ 
    // Now you can use $id 
} 

要澄清你,{id}的路線將採取idURI文章的,所以你可以使用URI這樣的:

http://example.com/article/like/10 // Here 10 is the article id 

所以這就是這個想法,現在實現它並修改URI或你需要什麼使它適合你的項目,但要記住,如果你想傳遞一個id到你的URI那麼你必須使用路由參數(即:{id})在聲明路由時,您的方法應該使用方法頭中的參數來接收該參數,即:public function like($id)