【发布时间】:2014-11-30 22:49:14
【问题描述】:
我有一个用户模型,每个用户都有一个内部或外部类型。内部和外部用户存储的数据非常不同,因此存在单独的 UserInternal 和 UserExternal 模型。
如何定义这种关系? UserInternal 和 UserExternal 表中有一个键“user_id”,每个用户在其中一个表中都有一个匹配的行。
当我检索用户数据时,它总是通过用户模型,但我想要扩展数据。
我该怎么做呢?我试过这个,但它并不总是有效(例如,如果我尝试 User::with('data') -> find(1) 它不会工作,因为 $this 还没有设置。
在用户模型内:
public function data()
{
if( $this -> type === 'internal' )
{
return $this -> hasOne('UserInternal');
}
else
{
return $this -> hasOne('UserExternal');
}
}
【问题讨论】: