首页 > 解决方案 > 如何使用 id 的查询来进行另一个具有 eloquent 的查询 - Laravel

问题描述

我是后端开发的新手,我正在尝试使用控制器内的中间表从用户 5 中选择活动。到目前为止,我收到以下代码的以下错误。我真的不明白错误是什么意思,谷歌的结果并没有真正帮助。

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

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

标签: laravel

解决方案


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

你必须得到一个数组来使用findMany,像这样:

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

但是,您必须使用 Eloquent 关系来更轻松地获得关系,例如:

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

Campaign我想和之间有关系CampaignUser


推荐阅读