Link Laravel 5 中的表格
Link Tables in Laravel 5
我正在编写一个需要 2 个 table 的应用程序,这些 link 使用 Link table 组合在一起,所以有 3 个 table共 s.
//-------
Users
//------
id,
name,
email,
password
//----
UserAccountType
//----
id,
name,
description
//---
UserAccountLink
//---
id,
user_id,
type_id,
用户可以有多种账户类型(Admin、Normal、Developer)...另外,我设置了外键限制。
唯一的问题是我不明白我会如何 link 这些,我尝试了以下方法:
class User extends Model {
// implementation
public function account_type()
{
$this->hasMany('UserAccountTypeLink', 'id', 'id');
}
}
class UserAccountType extends Model {
// Implementation
}
class UserAccountTypeLink extends Model {
// Implementation
public function user_account()
{
return $this->hasOne('UserAccountType', 'type_id', 'id');
}
}
我的预期输出是,例如,用户 1 返回了 "Admin" 和 "Developer" 的帐户。但目前,我似乎无法获得所需的输出。对我哪里出错有什么想法吗?
您不需要中间 UserAccountTypeLink 的模型 table。查看此处以获取有关如何在 Eloquent 中创建多对多关系的更多信息:http://laravel.com/docs/5.1/eloquent-relationships#many-to-many
我正在编写一个需要 2 个 table 的应用程序,这些 link 使用 Link table 组合在一起,所以有 3 个 table共 s.
//-------
Users
//------
id,
name,
email,
password
//----
UserAccountType
//----
id,
name,
description
//---
UserAccountLink
//---
id,
user_id,
type_id,
用户可以有多种账户类型(Admin、Normal、Developer)...另外,我设置了外键限制。
唯一的问题是我不明白我会如何 link 这些,我尝试了以下方法:
class User extends Model {
// implementation
public function account_type()
{
$this->hasMany('UserAccountTypeLink', 'id', 'id');
}
}
class UserAccountType extends Model {
// Implementation
}
class UserAccountTypeLink extends Model {
// Implementation
public function user_account()
{
return $this->hasOne('UserAccountType', 'type_id', 'id');
}
}
我的预期输出是,例如,用户 1 返回了 "Admin" 和 "Developer" 的帐户。但目前,我似乎无法获得所需的输出。对我哪里出错有什么想法吗?
您不需要中间 UserAccountTypeLink 的模型 table。查看此处以获取有关如何在 Eloquent 中创建多对多关系的更多信息:http://laravel.com/docs/5.1/eloquent-relationships#many-to-many