gpt4 book ai didi

php - Laravel 资源策略总是错误的

转载 作者:行者123 更新时间:2023-12-03 20:01:33 25 4
gpt4 key购买 nike

我试图允许用户在 Laravel 5.4 中查看他们自己的个人资料。

UserPolicy.php

public function view(User $authUser, $user)
{
return true;
}

在 AuthServiceProvider.php 中注册的策略
protected $policies = [
App\Task::class => App\Policies\TaskPolicy::class,
App\User::class => App\Policies\UserPolicy::class
];

路线
Route::group(['middleware' => 'auth'], function() {
Route::resource('user', 'UserController');
} );

Blade 模板
@can ( 'view', $user )
// yes
@else
// no
@endcan

UserController.php
public function profile()
{
return $this->show(Auth::user()->id);
}
public function show($id)
{
$user = User::find($id);
return view('user.show', array( 'user'=>$user,'data'=>$this->data ) );
}

返回总是“假”。从 Controller 调用策略也是如此。我哪里出错了?

最佳答案

回答我自己的问题感觉很奇怪,但是当我遇到没有跟进的问题时,我讨厌它。

所以经过仔细检查后发现,如果我删除 authorizeResource从构造函数:

  public function __construct()
{
$this->authorizeResource(User::class);
}

并检查 Controller 功能中的授权:
  $this->authorize('view',$user);

一切正常。
当我添加 $user 时,我一定错过了这部分作为策略函数中的参数。所以要查看的用户永远不会传入 authorizeResource方法。

感谢大家花时间帮助我。

关于php - Laravel 资源策略总是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com