laravel 关联关系之多态关联
多态关联
文章、作者与收藏的关联关系:收藏既可以是对文章的收藏,也可以是对作者的收藏
表:artist:
字段:id name
表:article:
字段:id title content
表:favorites:
字段:id favorite_type favorite_id
class favorites extents model{
......
public function favorite{
return morphTo('App\favorites','favorite');//第二个参数是favorite_type favorite_id字段中的favorite
}
......
}
class artist extents model{
......
public function favorites{
return morphMany('App\favorites','favorite');//第二个参数是favorite_type favorite_id字段中的favorite
}
......
}
class article extents model{
......
public function favorites{
return morphMany('App\favorites','favorite');//第二个参数是favorite_type favorite_id字段中的favorite
}
......
}
获取对文章的收藏
......
Artist::find(1)->favorites;
......
获取对作者的收藏
......
Article::find(1)->favorites;
......
获取收藏的所属对象
......
Favorite::find(1)->favorite;
......