我具有以下表格结构:
Tokens
- type ( Flag Indicating that if its a Users token or company's token )
- user_company_id (User or Company Id )
Users
- id
- username
- password
Companies
- id
- username
- password
我正在尝试根据 type 标志从令牌创建关系以获取用户或公司。
我知道我应该有一个不同的建模,但是该数据库已启动并且正在运行,我无法更改其结构。
我该怎么做?
我试图弄清楚,但直到现在都没有成功=(
答案 0 :(得分:1)
您可以尝试这样的操作(确保名称空间和模型名称正确):
令牌模型:
class Token extends Model
{
public function tokenable()
{
return $this->morphTo();
}
}
用户模型:
class User extends Model
{
public function tokens()
{
return $this->morphMany('App\Token', 'tokenable', 'type', 'user_company_id');
}
}
公司型号:
class Company extends Model
{
public function tokens()
{
return $this->morphMany('App\Token', 'tokenable', 'type', 'user_company_id');
}
}
请注意type
方法调用中的第三个(user_company_id
)和第四个(morphMany
)参数,这些参数是可选的,但在您的情况下,这些参数是必需的,因为您具有自定义字段数据库中的名称。查看文档以了解how to retrieve relations。