【发布时间】:2018-11-05 06:41:08
【问题描述】:
这是我第一次使用多态关系。
我正在创建一个 LMS,其中可以将作业分配给单个用户或团队,因此阅读 Laravel 文档似乎多态关系将是一个很好的方法。
我已经创建了 4 个表。
用户:
| id | username | password | created_at | updated_at |
团队:| id | friendly_name | slug |
团队用户:| id | user_id | team_id |
分配分配:
| id | assignment_id | assignmentable_type | assignmentable_id | created_at | updated_at
所以当assignment_allocations 中有数据时,它看起来像这样......
| id | assignment_id | assignmentable_type | assignmentable_id |
| 1 | 1 | App\Models\User | 1 |
但是我得到了这个错误:
SQL: select * from
userswhereusers.assignmentable_id= 1 和users.assignmentable_id不为空,users.assignmentable_type= App\Models\User
很明显我做错了什么,但我终生无法弄清楚我做错了什么。
这是与此相关的我的功能:
AssignmentAllocation.php
public function assignmentable()
{
return $this->morphTo();
}
User.php
public function assignments()
{
return $this->morphMany('App\Models\User', 'assignmentable');
}
Team.php
public function assignments()
{
return $this->morphMany('App\Model\Team', 'assignmentable');
}
非常感谢任何帮助。
【问题讨论】:
标签: sql laravel eloquent models