Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel-如何检查子关系是否存在_Php_Mysql_Laravel - Fatal编程技术网

Php laravel-如何检查子关系是否存在

Php laravel-如何检查子关系是否存在,php,mysql,laravel,Php,Mysql,Laravel,我的控制器正在接收AgentId public function save(Int $agent_id, Request $request) 所以现在我需要检查当前用户是否有权限处理这个代理id 问题是它们不是直接与关系联系在一起的 这些模型之间的路径是: User -> hasMany Workspace -> hasMany Inventory -> hasOne Agent 因此,问题是:是否有更简单/更干净的方法来检查用户是否与该代理有连接 到目前为止,我尝试的是循

我的控制器正在接收AgentId

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方法从代理获取用户数据