0
私はLaravel 5.4で多型関係を設定しました。リレーションシップは機能していますが、クエリは完全修飾モデル名を使用しています。完全なモデル名を使用したLaravel Polymorphic Relation
select * from `contact_info`
where `contact_info`.`entity_id` = '25'
and `contact_info`.`entity_id` is not null
and `contact_info`.`entity_type` = 'App\Modules\User\Model\User'
limit 1
関係がユーザモデルに設定されている:
/**
* @description Method handles polymorphic contact relationship.
* @return \Illuminate\Database\Eloquent\Relations\MorphOne
*/
public function contact()
{
return $this->morphOne('App\Modules\Common\ContactInfo', 'entity');
}
とのContactInfoモデル:
/**
* @description Method establishes polymorphic relationship (tenant/user).
* @return \Illuminate\Database\Eloquent\Relations\MorphTo
*/
public function entity()
{
return $this->morphTo();
}
実際のテーブルには、 'ユーザ'、 'テナント' に設定された値を有していますモデル名/名前空間の代わりに 'referrer'を使用します。私は関係マップについての情報を少し見つけましたが、ここで問題が解決するかどうかわかりません。
基本的には、'App\Modules\User\Model\User'
が'user'
であることをコードに伝える方法を見つける必要があります。