Php Laravel Eloquent:如何检索select中每个列的值数组?
我有一个“clients\u campaigns”表,它有三列。用户id、公司id和活动id。我想获得具有特定用户id的所有公司id和活动id的列表。通过这两个列表,我将搜索其他两个表,即公司和活动。通过使用每个列表,我将找到与id关联的名称 我不确定如何创建包含每种类型id的两个列表。下面是我迄今为止的尝试和代码Php Laravel Eloquent:如何检索select中每个列的值数组?,php,laravel,eloquent,Php,Laravel,Eloquent,我有一个“clients\u campaigns”表,它有三列。用户id、公司id和活动id。我想获得具有特定用户id的所有公司id和活动id的列表。通过这两个列表,我将搜索其他两个表,即公司和活动。通过使用每个列表,我将找到与id关联的名称 我不确定如何创建包含每种类型id的两个列表。下面是我迄今为止的尝试和代码 $ids = \DB::table('clients_campaigns')->select('company_id','campaign_id')
$ids = \DB::table('clients_campaigns')->select('company_id','campaign_id')
->where('user_id',$request->user_id)
->pluck('company_id','campaign_id');
if($ids !== null){
//use those id's to retrieve the company names and campaign names
Company::select('name')->whereIn('id', ...);
Campaign::select('name')->whereIn('id',...);
以当前示例为例,您可以将第一个查询的结果检索到集合中,然后使用该集合为每个后续查询提取结果 将此付诸实践将如下所示:
$ids = \DB::table('clients_campaigns')->select('company_id','campaign_id')
->where('user_id',$request->user_id)
->get();
->pluck('company_id','campaign_id');
if ($ids->count()) {
//use those id's to retrieve the company names and campaign names
Company::select('name')->whereIn('id', $ids->pluck('company_id'));
Campaign::select('name')->whereIn('id', $ids->pluck('campaign_id'));
}
以当前示例为例,您可以将第一个查询的结果检索到集合中,然后使用该集合为每个后续查询提取结果 将此付诸实践将如下所示:
$ids = \DB::table('clients_campaigns')->select('company_id','campaign_id')
->where('user_id',$request->user_id)
->get();
->pluck('company_id','campaign_id');
if ($ids->count()) {
//use those id's to retrieve the company names and campaign names
Company::select('name')->whereIn('id', $ids->pluck('company_id'));
Campaign::select('name')->whereIn('id', $ids->pluck('campaign_id'));
}
如果你真的想这样做的话,你已经不远了,但是你真的不需要第一个
拉
,因为反正只有3个字段。然后,您可以分别提取公司id
和活动id
列,以便在接下来的两个查询中使用:
$ids = DB::table('clients_campaigns')
->where('user_id', $request->user_id)
->get(['company_id', 'campaign_id']);
if ($ids->notEmpty()) {
$companyNames = Company::whereIn('id', $ids->pluck('company_id'))
->pluck('name');
$campaignNames = Campaign::whereIn('id', $ids->pluck('campaign_id'))
->pluck('name');
}
如果在第一次查询中使用Pull,您将有一个由活动\u id
键入的列表,那么您只需使用活动
查询的键,以及公司
查询的值
您还可以选择将查询对象传递给,而在中调用。如果您真的想这样做,您已经不远了,但是您确实不需要第一次抓取,因为无论如何只有3个字段。然后,您可以分别提取公司id
和活动id
列,以便在接下来的两个查询中使用:
$ids = DB::table('clients_campaigns')
->where('user_id', $request->user_id)
->get(['company_id', 'campaign_id']);
if ($ids->notEmpty()) {
$companyNames = Company::whereIn('id', $ids->pluck('company_id'))
->pluck('name');
$campaignNames = Campaign::whereIn('id', $ids->pluck('campaign_id'))
->pluck('name');
}
如果在第一次查询中使用Pull,您将有一个由活动\u id
键入的列表,那么您只需使用活动
查询的键,以及公司
查询的值
您还可以选择将查询对象传递给调用,而调用。谢谢您的帮助:)当您说如果我真的想这样做,您的意思是说有更好的方法可以这样做吗?谢谢您的帮助:)当您说如果我真的想这样做,你是说有更好的办法吗?