2017年11月27日上午7:24:
更新:稍微改变需求并需要一些帮助:
How to write this query in laravel query builder or eloquent or sql?
将此问题留待此处参考。
谢谢你的回答。
我在广告系列和用户之间建立了多对多的关系。
Campagin.php
public function users()
{
return $this->belongsToMany('App\User');
}
user.php的
public function campaigns()
{
return $this->belongsToMany('App\Campaign');
}
我有一个针对这种关系的数据透视表:campaign_user
,它只有2列campaign_id
和user_id
。
接下来,我在广告系列和标记之间建立了一对多的关系 1个广告系列有很多标记
Campaign.php
public function markers()
{
return $this->hasMany('App\Marker', 'campaign_id');
}
Marker.php
public function campaign()
{
return $this->belongsTo('App\Campaign', 'campaign_id');
}
现在,在此网址/campaign/2/marker
中,我希望获得属于当前用户的广告系列2下的所有标记。
如何使用eloquent来实现这一目标?
在SQL中大致如下:
select * from markers where campaign_id in (select campaign_id from campaigns
left join campaign_user on (campaigns.id = campaign_user.campaign_id)
where campaign_user.campaign_id = 2 and campaign_user.user_id = 3);
答案 0 :(得分:0)
首先检查您的exists
用户下的广告系列current
。
$campaign = Campaign::where('id','=',$campaign_id)->whereHas('users',function($q){
$q->where('id','=',$user_id);
})->first();
然后使用Marker
-
Campaign
if($campaign!=null){
Marker::where('campaign_id','=',$campaign->id)->with('campaign')->get();
}
答案 1 :(得分:0)
使用嵌套select *
from funcionario
where nome = 'marcio' and numero = '1234';
,如下所示:
ID_funcionario nome numero sexo morada email data_nasc
----------------------------------------------------------------------
1 marcio 1234 male jardim marcio 11/23/2017