laravel - 如何使用 id 的查询来进行另一个具有 eloquent 的查询 - Laravel
问题描述
我是后端开发的新手,我正在尝试使用控制器内的中间表从用户 5 中选择活动。到目前为止,我收到以下代码的以下错误。我真的不明白错误是什么意思,谷歌的结果并没有真正帮助。
“stripos() 期望参数 1 是字符串,给定对象”
public function index()
{
$userCampaignIDs = CampaignUser::where('user_id', '5');
$campaigns = Campaign::findMany('id', $userCampaignIDs);
return $campaigns;
}
解决方案
因为$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
推荐阅读
- excel - 如果日期是今天,则使用循环进行 VLookup
- node.js - NodeJS ssl 连接到 mongodb 服务器冻结
- c++ - node-gyp 在子文件夹中找不到文件
- regex - 使用前面在匹配中定义的组的正则表达式负前瞻
- javascript - 如何在引导程序中禁用折叠
- http - 如何在代理后面的 Julia 中发出 HTTP 请求?
- vue.js - VueJS 组件:无法获取渲染更新的集合
- windows-store - 如何仅为 Insider 构建制作 Windows Store 包?
- c# - 使用依赖注入的通用接口解析具体类是一个好的设计吗?
- java - 如何使用java复制现有列数据并在另一列中编辑它