[英]How to establish polymorphic relations with Eloquent
使用 Laravel 和 Eloquent。 我有一個看起來像這樣的數據庫:
dance_performers.dance_perfomer_type
字段承載諸如'\App\Dancer'
、 '\App\Couple'
或'\App\Formation'
類的值。
您將如何繼續將dance_performers.dance_perfomer_id
連接到不同的模型? 我不確定我應該如何在不同的模型中編寫關系。 我是否應該創建一個\App\Performer
model 來指向前面提到的三個之一?
使用多態關系:
class Dance extends Model {
public function couples() {
return $this->morphedByMany('\App\Couple', 'dance_performer');
}
}
class Couple extends Model
{
public function dances() {
return $this->morphToMany('App\Dance', 'dance_performer');
}
}
目前, $dances = \App\Dance::with('couples')->get();
只返回空關系。 我將不勝感激。
根據您的代碼,一切都是正確的。 我猜你在數據庫中沒有正確的數據。 添加一些如下數據並檢查。
dances
id - 1,名稱 - 'Dance A'
id - 2,名稱 - '舞蹈 B'
couples
id - 1,名稱 - '情侶 A'
id - 2, name - '情侶 B'
dance_performers
id - 1,dance_id - 1,dance_performer_type - '\App\Couple',dance_performer_id - 1
id - 2,dance_id - 2,dance_performer_type - '\App\Couple',dance_performer_id - 2
解決了。 type
字段應該是App\ModelName
而不是\App\ModelName
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.