2013-10-12 43 views
0

我跟着http://culttt.com/2013/05/13/setting-up-your-first-laravel-4-model/的一些教程,它不會工作。下面是我的嘗試:laravel 4調用一個非對象的成員函數posts()

Post模型:

class Post extends Eloquent { 

    protected $fillable = array('body'); 

    public function user() 
    { 
    return $this->belongsTo('User'); 
    } 
} 

路線:

Route::get('/posts',function() 
{ 
    // Create a new Post 
    $post = new Post(array('body' => 'Yada yada yada')); 
    // Grab User 1 
    $user = User::find(1); 
    // Save the Post 
    $user->posts()->save($post); 
}); 

用戶模式:

/** 
* Post relationship 
*/ 
public function posts() 
{ 
    return $this->hasMany('Post'); 
} 

對於Post模型,只需簡單地創建一個身柱和user_id欄。但是,當我瀏覽器,顯示錯誤:「調用一個非對象的成員函數posts()」

有誰知道這裏的問題是什麼?

+0

是否與ID = 1在數據庫中存在該用戶? –

+0

@Janily你有沒有得到這個排序?嘗試在'$ user = User :: find(1);'後面運行'dd($ user);'併發布輸出,這將允許您查看用戶對象並幫助解決發生的事情。你也看過你的數據庫。用戶是否存在ID爲1的ID?如果您多次重新創建用戶,則ID可能會增加。你可以試試'User :: first();'而不是看看它是否可行 – WebweaverD

回答

2

您需要先創建用戶,然後才能嘗試從數據庫中檢索它。

嘗試:

// Create a User 
$user = new User; 
$user->username = 'username'; 
$user->email = '[email protected]'; 
$user->password = 'password'; 
$user->password_confirmation = 'password'; 
$user->save(); 

// Create a new Post 
$post = new Post(array('body' => 'Yada yada yada')); 
// Grab User 1 
$user = User::find(1); 
// Save the Post 
$user->posts()->save($post); 
+0

非常感謝!本教程非常酷! – Janily

相關問題