我剛剛開始laravel5,但我還沒有見過像laravel4那樣的模型文件夾。 我的問題是。Laravel5:多對多的關係
1.模型文件夾駐留在laravel5中?
2. laravel5中處理manay關係有多少?
我有以下情況。
角色表 領域 。 id 。 ROLE_NAME
用戶表 。 id 。用戶名 。電子郵件 。密碼
透視表 ROLE_USER 。 id 。 role_id 。 user_id
我剛剛開始laravel5,但我還沒有見過像laravel4那樣的模型文件夾。 我的問題是。Laravel5:多對多的關係
1.模型文件夾駐留在laravel5中?
2. laravel5中處理manay關係有多少?
我有以下情況。
角色表 領域 。 id 。 ROLE_NAME
用戶表 。 id 。用戶名 。電子郵件 。密碼
透視表 ROLE_USER 。 id 。 role_id 。 user_id
App/
文件夾中。因爲這是用戶模型所在的地方。創建你自己的文件夾來創建一個。該文檔將涵蓋此內容,找到here。這將通過您的相關模型建立關係。
public function roles(){
return $this->belongsToMany('App\Role', 'Pivot_table_name', 'foreign_key', 'other_key');
}
請注意:幾乎一切被覆蓋的文檔中。
現在你有了你的關係,你可以在你的用戶模型中這樣稱呼它$user = User::with('roles')->find(1);
這會迫切地將你的角色加載到你的模型上,並且可以像這樣訪問; $user->roles
。
該文檔還包含使用whereHas
找到的方法here查詢關係。
您的應用程序模型應該是這樣>app/Model/Role.php
設置namespace App\Model;
下的應用程序/型號的所有模型文件。
多對多的關係
user.php的
public function roles()
{
return $this->belongsToMany('App\Model\Role');
}
作用。PHP
現在你可以使用這樣的
$user = App\User::find(1);
foreach ($user->roles as $role)
{
//
}
模型文件在app
目錄。當您安裝新的laravel時,您應該在app
目錄下看到一個User.php
文件。
在你Role
模型中,你應該定義一個函數:
public function users(){
return $this->belongsToMany('App\User');
}
在你User
模型中,你應該定義一個函數:
public function roles(){
return $this->belongsToMany('App\Role');
}
如果你想獲得角色屬於用戶名:
foreach($users as $user){
$roles = $user->roles;
}
如果你想獲得用戶在一個角色下:
$users = $role->users;
foreach($users as $user){
//
}
這些是「延遲加載」,只在您訪問它們時加載關係。
請任何一個向我提供正宗的資源形式,其中,因爲我有項目,我需要將它升級到laravel5我可以開始laravel 5。 – user1875774 2015-02-23 11:17:18
從4.2升級到5非常簡單:閱讀文檔http://laravel.com/docs/master/upgrade#upgrade-5.0只需記住爲控制器中使用的每個類添加「use namespace/class」。並且將命名空間添加到您的控制器也將有助於解決路由問題。 – maztch 2015-04-22 16:42:19