我如何将id的查询用于雄辩的另一个​​查询-Laravel

时间:2019-10-08 13:32:32

标签: laravel

我是后端开发的新手,我试图使用控制器内部的中介表从用户5中选择广告系列。到目前为止,使用以下代码会出现以下错误。我不太明白错误的含义,而Google的结果也没有帮助。

  

“ stripos()期望参数1为字符串,给定对象”

public function index()
{
    $userCampaignIDs = CampaignUser::where('user_id', '5');
    $campaigns = Campaign::findMany('id', $userCampaignIDs);
    return $campaigns;
}

1 个答案:

答案 0 :(得分:1)

因为$userCampaignIDs不是数组,而是QueryBuilder。

您必须获得一个数组才能使用findMany,如下所示:

$userCampaignIDs = CampaignUser::where('user_id', '5')->get()->pluck('id');

但是,您必须使用雄辩的关系才能更轻松地建立关系,例如:

$userId = 5;
$campaigns = Campaign::whereHas('campaignUser', function($query) use ($userId) {
    $query->where('user_id', $userId);
})->get();

我想CampaignCampaignUser之间有一种关系