网站首页 laravel框架
laravel--ORM--深入操作 远程多对多多态关联
发布时间:2016-07-15 07:26查看次数:6940
laravel--ORM--深入操作 远程多对多多态关联
远程多态多对多的应用场景:
2个以上表公用一个表的内容,
这个表的内容存在第三张表内
有点绕口哦!!
看示例图:
示例模型代码:
文章MODEL -- POSTSMODEL
/**
* 获取指定文章所有标签
*/
public function get_tags(){
return $this->morphToMany('App\Http\Model\Tags','taggables');
这样这里好像是写死的
}
调用代码示例:
//远程多对多多态关联
public function yuan(){
$posts = posts::find(1);
$tagAll = $posts->get_tags;
return view('test');
}
原生SQL:
select `tags`.*, `taggables`.`taggables_id` as `pivot_taggables_id`,
`taggables`.`tags_id` as `pivot_tags_id` from `tags` inner join `taggables`
on `tags`.`id` = `taggables`.`tags_id` where `taggables`.`taggables_id` = '1'
and `taggables`.`taggables_type` = 'posts'
标签表MODEL示例:
protected $morphClass = 'tags';
/**
* 获取所有分配该标签的文章
*/
public function posts()
{
return $this->morphedByMany('App\Http\Model\posts', 'taggable');
}
/**
* 获取分配该标签的所有视频
*/
public function videos()
{
return $this->morphedByMany('App\Http\Model\videos', 'taggable');
}
关键字词:laravel--ORM--深入操作 远