Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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 使用除';用户->;id';_Php_Laravel - Fatal编程技术网

Php 使用除';用户->;id';

Php 使用除';用户->;id';,php,laravel,Php,Laravel,我想创建一个Laravel授权策略,但是我想检查相关用户的业务模型(比如$user->Business()->id),而不是检查用户->id) 我已尝试在我的OrderPolicy中使用以下内容,但它不起作用 订单政策 class OrderPolicy { .... public function edit(User $user, Order $order) { if ($user->business()->id === $order->

我想创建一个Laravel授权策略,但是我想检查相关用户的业务模型(比如
$user->Business()->id
),而不是检查
用户->id

我已尝试在我的OrderPolicy中使用以下内容,但它不起作用

订单政策

class OrderPolicy
{
    ....
    public function edit(User $user, Order $order)
    {
        if ($user->business()->id === $order->business_id) {
            return true;
        }
    }    
}
刀片

...
@can('edit', $business->orders())
Edit Link
@endcan
...
有人能告诉我如何正确地执行此操作吗?

假设
business()
是一种关系方法

$user->business->id
将是与用户相关的业务模型的
id

可能需要先检查
->business
是否为空

如果不想加载该关系,也可以直接查询该关系<代码>$user->business()->其中('id',$order->business\u id)->存在()


肯定有一个相关的
业务()
,只是不确定如何检查它,而不是我的回答中的用户->IDIT。这似乎不起作用,我知道Orders表中有与用户业务相关的记录。有什么方法可以调试这个,我已经尝试在策略中使用
Log
,但是日志文件中没有打印任何行。我的
AuthServiceProvider.php
和什么是
$business->orders()
。。。如果这是一个关系方法,它不会返回一个模型。这是一个关系方法,否则我应该如何调用相关模型?它没有从控制器传递到我的视图中(因为它没有在任何地方使用)。我回答中的链接解释了如何使用关系来获取实际模型。