Php laravel-如何检查子关系是否存在
我的控制器正在接收AgentIdPhp laravel-如何检查子关系是否存在,php,mysql,laravel,Php,Mysql,Laravel,我的控制器正在接收AgentId public function save(Int $agent_id, Request $request) 所以现在我需要检查当前用户是否有权限处理这个代理id 问题是它们不是直接与关系联系在一起的 这些模型之间的路径是: User -> hasMany Workspace -> hasMany Inventory -> hasOne Agent 因此,问题是:是否有更简单/更干净的方法来检查用户是否与该代理有连接 到目前为止,我尝试的是循
public function save(Int $agent_id, Request $request)
所以现在我需要检查当前用户是否有权限处理这个代理id
问题是它们不是直接与关系联系在一起的
这些模型之间的路径是:
User -> hasMany Workspace -> hasMany Inventory -> hasOne Agent
因此,问题是:是否有更简单/更干净的方法来检查用户是否与该代理有连接
到目前为止,我尝试的是循环每个关系级别的所有项。
代理
模型与用户
有关系,因为没有父数据,您无法创建子表行。您可以使用join方法访问用户表,如下所示:
$q = Agent::select('agents.*')
->where('id', $agent_id)
->join('inventories', 'inventories.id', '=', 'agents.inventory_id')
->join('workspaces', 'workspaces.id', '=', 'inventories.workspace_id')
->join('users', 'users.id', '=', 'workspaces.workspace_id')
->get();
没有本地支持。您可以使用第三方或join方法从代理获取用户数据