2017-07-31 133 views
1

的關係我有這個疑問定義雄辯型號Laravel

SELECT * FROM users AS u INNER JOIN branches AS b ON u.branch_id = b.branch_id 

這意味着每一個user有關聯的branch但一個branch可以與許多user關聯。

任何人都可以幫助我如何定義這種關係?

我這樣做

我寫在用戶模式

public function branch() 
{ 
    return $this->belongsTo('App\Branch'); 
} 

這種關係,則返回null。

+0

你會違背命名約定。 Laravel可以解決這個問題,但你通常會有一段糟糕的時間。您的「分支」表中的標識符字段應該只是「id」。 – apokryfos

回答

1

您的問題似乎與一對多關係即多對一相反。

在這裏,你的情況許多用戶屬於一個分支。所以,你可以在User模型中定義多對一的關係爲:

public function branch() 
{ 
    return $this->belongsTo('App\Branch','branch_id'); 
} 

現在,你可以像這樣的用戶的訪問分支:

$user = User::find($id); 

$branch = $user->branch; 

希望你能理解。

1

你應該試試這個:

public function branch() 
{ 
    return $this->belongsTo('App\Branch','branch_id'); 
} 

希望這對你的工作!

+0

這有幫助,請你解釋一下。我正在學習雄辯。 – Alen

+0

@Alen請點擊此鏈接(https://laravel.com/docs/5.2/eloquent-relationships#one-to-many) –