laravel - 在laravel eloquent中使用belongsToMany时,集合中不存在属性
问题描述
我正在使用 Laravel 8.X 和 eloquent 开发一个网络应用程序。
我有一个数据透视表“portal_event_users”
我正在尝试portal_users
在表模型中添加一个 belongsToMany 关系portal_event_users
。
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class EventUser extends Model
{
use HasFactory;
protected $table = 'portal_event_users';
public function users()
{
return $this->belongsToMany(User::class);
}
public function events()
{
return $this->belongsToMany(Event::class);
}
}
我在控制器中有以下语句
$eventusersobj = \App\Models\EventUser::select('*')
->where('event_id', '=', $event_id)
->get();
$response = $eventusersobj->users->keyBy('id');
它返回以下错误
此集合实例上不存在属性 [users]。
有人可以建议我如何更改此错误吗?
提前致谢
解决方案
作为返回集合,您可以使用pluck()
$eventusersobj->pluck('users')->each(function($user){
$user->keyBy('id');
})
推荐阅读
- java - 重载 RequestMappings - Java
- c++ - 带 Mergesort 的 DLL 不断崩溃
- php - 在 Woocommerce 中动态更改特定产品的购物车商品价格和名称
- php - phpmailer 和电子邮件垃圾邮件过滤器的问题
- c# - 从对象数组中删除项目
- vue.js - vue js返回空对象响应
- python - Keras:如何在训练期间在自定义生成器中获取模型预测(或最后一层输出)?
- python - 两种类型的标头 txt 到 Pandas 数据框
- date - 在 Google Apps Script 中,我的日期从正常格式切换到看起来像 id 号的格式
- google-cloud-storage - GCS:将对象级别的权限控制更改为存储桶级别