2012-12-20 95 views
0

我試着按照在http://net.tutsplus.com/tutorials/php/build-web-apps-from-scratch-with-laravel-the-eloquent-orm/http://laravel.com/docs/database/eloquent找到的文檔,但它似乎沒有工作。如何在Laravel中添加關係?

class User extends Eloquent 
{ 
    public function role() 
    { 
     return $this->has_one('Role', 'role_code'); 
    } 
} 

class Role extends Eloquent 
{ 
    public function user() 
    { 
      return $this->belongs_to('User', 'role_code'); 
    } 
} 

在我的數據庫中,我在用戶和角色表中都有role_code列。 我在我的控制器中使用了此命令$test = User::find(1)->role()->get();但它只顯示一個空白數組。我確定我的用戶和角色表中都有一個條目。

我錯過了什麼?你們能幫我嗎?

+1

嘗試打開config/application中的分析器並查看該行生成的查詢。提供的代碼看起來很好。 – TLGreg

+1

我同意TLGreg。儘管如此,也許嘗試使用' - > first();'而不是' - > get();'。 –

+0

也許使用小寫的表名(只是一個很好的做法),除此之外,片段對我來說看起來很好。 – aebersold

回答

0

您是否定義了角色表的關鍵字段?如果角色表的鍵是$ id,那麼您向我們展示的內容應該工作。如果沒有,你需要添加類似下面的角色類:

public static $key = 'role_code'; 

(我假設,如果你使用非傳統的外鍵的定義,你可能有非傳統主體 - 關鍵定義。)