Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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 为什么authorize()不像在开发环境中那样在生产环境中工作?_Php_Laravel - Fatal编程技术网

Php 为什么authorize()不像在开发环境中那样在生产环境中工作?

Php 为什么authorize()不像在开发环境中那样在生产环境中工作?,php,laravel,Php,Laravel,当我把我的项目上传到web服务器上,当我尝试登录时,我得到了403错误,但让我困惑的是,它在开发环境中工作得很好。例如,这是我的控制器功能: public function show($user){ $user = \App\User::find($user); $this->authorize('view', $user->supplier); return view("/Suppliers/supplier", compact('user'));} 这是

当我把我的项目上传到web服务器上,当我尝试登录时,我得到了
403错误
,但让我困惑的是,它在开发环境中工作得很好。例如,这是我的控制器功能:

public function show($user){

$user = \App\User::find($user);
$this->authorize('view', $user->supplier);
return view("/Suppliers/supplier", compact('user'));} 
这是我的政策:

public function view(User $user, Supplier $supplier)
{
    return $user->id === $supplier->user_id;
}
它适用于所有
authorize()
函数。这是我第一次部署laravel应用程序,非常感谢您的帮助。我正在运行laravel 8.0.1版本。我还运行了
php artisan缓存:clear

php-artisan-route:clear
php-artisan-config:clear
php-artisan-view:clear

当我返回并刷新我在索引页上登录的页面时,可能您实际上没有登录。当我再次尝试转到同一页时,会出现相同的错误。这对我来说毫无意义。当然,当我注释掉
$this->authorize('view',$user->supplier)时它工作正常如果当前经过身份验证的用户不是您要传递给的用户
show
它将不会被授权。。。看起来你需要更多的细节和调试我确实意识到我需要更多的调试,但困扰我的是开发环境中从未发生过这种情况我们不知道你的数据库和数据。。。当前经过身份验证的用户是否是具有该“id”的同一用户?当我返回并刷新我在索引页上登录的页面时,可能您实际上没有登录。当我再次尝试转到同一页时,会出现相同的错误。这对我来说毫无意义。当然,当我注释掉
$this->authorize('view',$user->supplier)时它工作正常如果当前经过身份验证的用户不是您要传递给的用户
show
它将不会被授权。。。看起来你需要更多的细节和调试我确实意识到我需要更多的调试,但困扰我的是开发环境中从未发生过这种情况我们不知道你的数据库和数据。。。当前经过身份验证的用户是否是具有该“id”的同一用户?