我有三张桌子:
Users
(id / username)
Folders
(id / name)
Folders_settings
(folder_id / user_id / order)
我希望能够选择用户的文件夹顺序。
在文件夹模型中我有:
//Folder Eloquent model
public function user()
{
return $this->belongsTo('user')
}
public function settings()
{
return $this->hasOne('FolderSettings');
}
我需要在hasOne关系中为设置关系添加user_id约束。我怎么能这样做?
答案 0 :(得分:1)
这是通过在Users模型中设置关系自动完成的。
// Inside User.php
public function settings()
{
return $this->hasMany('FolderSettings');
}
// Inside FolderSettings.php
public function user()
{
return $this->belongsTo('User');
}
这应该将user_id字段作为关系。然后,您可以按如下方式获取特定用户的文件夹(通过设置):
User::with('settings.folders')->find(1);
答案 1 :(得分:0)
那么,您需要用户的文件夹的顺序吗?
<强>表格强>
用户 - id,用户名
文件夹 - id,name
folders_settings - id,folder_id,user_id,order
<强>模型强>
<?php
class User extends Eloquent
{
public function foldersetting()
{
return $this->hasOne('Foldersetting');
}
}
class Foldersetting extends Eloquent
{
protected $table = 'folders_settings';
public function user()
{
return $this->belongsTo('User');
}
public function folder()
{
return $this->belongsTo('Folder');
}
}
class Folder extends Eloquent
{
public function foldersetting()
{
return $this->hasOne('Foldersetting');
}
}
选择用户的文件夹订单
$user = User::with('foldersetting')->find($id);
var_dump($user->foldersetting->order);
这应该可以解决问题。 PS:没有经过测试,所以让我知道(如果)问题。