Laravel 无法在使用 belongsToMangy 连接的 table 上使用 where
Laravel cannot use where on a table connected using belongsToMangy
我有以下模型文件,它与 portal_users table.
有 belongsToMany 关系
class Role extends Model
{
use HasFactory;
protected $table = 'portal_roles';
protected $hidden = array('created_at', 'updated_at','deleted_at');
public function users()
{
return $this->belongsToMany(User::class, 'portal_user_roles');
}
}
我正在尝试使用以下查询查找适合特定角色的所有用户的详细信息
$recordobj = Role::find(15)->users->where('firstname', 'like', '%' . $searchstring . '%')->get()->keyBy('id');
即使有些用户的角色 ID 为 15,它仍返回空结果集。谁能告诉我这里的问题是什么?
将users
改为users()
:
$recordobj = Role::find(15)->users()->where('firstname', 'like', '%' . $searchstring . '%')->get()->keyBy('id');
我有以下模型文件,它与 portal_users table.
有 belongsToMany 关系class Role extends Model
{
use HasFactory;
protected $table = 'portal_roles';
protected $hidden = array('created_at', 'updated_at','deleted_at');
public function users()
{
return $this->belongsToMany(User::class, 'portal_user_roles');
}
}
我正在尝试使用以下查询查找适合特定角色的所有用户的详细信息
$recordobj = Role::find(15)->users->where('firstname', 'like', '%' . $searchstring . '%')->get()->keyBy('id');
即使有些用户的角色 ID 为 15,它仍返回空结果集。谁能告诉我这里的问题是什么?
将users
改为users()
:
$recordobj = Role::find(15)->users()->where('firstname', 'like', '%' . $searchstring . '%')->get()->keyBy('id');