我是Laravel的新手,我使用laravel 5.4版本。 我有下一個場景:我有一個表用戶,我只把用戶名和通行證,和另外兩個表僱員和合作夥伴,在那裏我保存所有數據爲用戶,如姓名,地址,電子郵件,電話......如何在所有行中使用Laravel中的多態關係?
表結構:
用戶 - ID |用戶名|密碼| userable_id | userable_type
員工 - ID |名稱|電話|電子郵件|薪水|位置| departamnet
合作伙伴 - ID |名稱|公司名稱
In User model:
class User extends Authenticatable
{
public function userable(){
return $this->morphTo();
}
}
Class Model:
class Employee extends Model
{
protected $fillable = [];
public function users()
{
return $this->morphOne('App\User', 'userable');
}
}
Partner Model:
class Partner extends Model
{
protected $fillable = [];
public function users()
{
return $this->morphOne('App\User', 'userable');
}
}
現在,如果我在修補程序中執行此操作(App \ User :: first() - > userable),將僅爲第一個用戶從Employee/Partner返回數據。所有()或獲得()方法將返回此:
應用程序\用戶::所有() - > userable 異常與消息「屬性[userable]不會對這種集合實例存在「。 App \ User :: get() - > userable 消息'屬性[userable]的異常在此集合實例中不存在。'
這是任何改變,使這個爲所有用戶列表的工作? PS:在用戶表userable_type我有,一個模型,並在userable_id我有行ID與模型相對應,例如員工和1.預先感謝。
謝謝!我只在代碼中嘗試過,而不是在Tinker中。在我看到修補程序中的響應之後,我意識到代碼中有些錯誤... –