【发布时间】:2021-02-24 19:02:39
【问题描述】:
我正在使用 Laravel 8.X 和 eloquent 开发一个网络应用程序。
我有一个数据透视表“portal_event_users”
我正在尝试向portal_event_users 表模型中的portal_users 添加belongsToMany 关系。
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');
返回以下错误
此集合实例上不存在属性 [用户]。
有人可以建议我如何更改此错误吗?
提前致谢
【问题讨论】:
-
您的语句将一个集合返回给 $eventusersobj,因此您需要将其用作集合,例如使用 for 循环进行迭代或使用 $eventusersobj->first() 获取第一项。