网站首页 laravel框架
laravel--ORM--深入操作 远程多对多
发布时间:2016-07-15 06:33查看次数:18703
laravel--ORM--深入操作 远程多对多
比如:一个多用户的网站 多个用户来着一个城市,老板说你给我统计来着上海的文章数量
但是呢?城市吧跟文章表是没有关联的,也没有冗余字段,
这个时间 就需要远程多对多了!
示例模型结构:
//取指导国家所有文章
public function get_posts(){
return $this->hasManyThrough('App\Http\Model\posts','App\Http\Model\tmpusers','country_id', 'user_id');
}
调用代码:
//远程多对多
public function duoDuiDuo(){
$data = $caty->find(1); //主键ID为上海
$data = $data->get_posts; //取城市全部文章
return view('test');
}
原先SQL:
select `posts`.*, `tmpusers`.`country_id` from `posts`
inner join `tmpusers` on `tmpusers`.`id` =
`posts`.`user_id` where `tmpusers`.`country_id` = '1'
调用代码拓展:
//远程多对多
public function duoDuiDuo(){
$data = $caty->find(1);
$data = $data->get_posts()->where('posts.title','张三')->get();
return view('test');
}
调用代码拓展原型SQL:
select `posts`.*, `tmpusers`.`country_id` from `posts` inner join `tmpusers` on `tmpusers`.`id`
= `posts`.`user_id` where `tmpusers`.`country_id` = '1' and `posts`.`title` = ' _ N'
关键字词:laravel--ORM--深入操作 远