使用laravel的gate的时候发现定一个gate没有执行

使用laravel的gate的时候发现在authServerProvider定义的gate不能触发

我在authServerProvider里面返回true也没有用,按照文档里面也没有发现问题

相关代码

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        // 'App\Model' => 'App\Policies\ModelPolicy',
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        Gate::define('update-post', function ($user, $post) {

            return true;
        });
    }
}

这是控制器代码
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Resources\UserResource;
use App\Model\Admin\Post;
use App\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Gate;

class UserController extends Controller
{
    public function index()
    {
        //return new UserResource(User::find(1));
        $post = Post::find(1);
        $status = Gate::allows('update-post', $post);
        dd($status);// 这里一直返回的是false

        return view('welcome');
    }
}

这里不应该返回的是true吗?

阅读 2.3k
2 个回答

原因是必须是登录

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题