laravel 政策未调用
laravel policy not called
文档是隐藏了什么,还是隐藏了什么?
创建于
php artisan make:policy AdvertisementPolicy --model=Advertisement
class AdvertisementPolicy
{
use HandlesAuthorization;
/**
* Determine whether the user can view any advertisements.
*
* @param \App\User $user
* @return mixed
*/
public function viewAny(User $user)
{
return false;
}
public function view(User $user, Advertisement $advertisement)
{
return false;
}
模型也是用 cli 创建的
namespace App;
class Advertisement extends Model
{
通过以下方式注册:
use App\Advertisement;
use App\Policies\AdvertisementPolicy;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
Advertisement::class => AdvertisementPolicy::class,
这里是否有任何额外的步骤来完成此政策注册laravel 6?
文档中没有任何隐藏内容。你就是没仔细看文档
请查看 Authorizing Actions Using Policies 部分。
永远不会调用您的政策,因为您没有在代码中的任何地方使用它。至少,如果你需要 运行 你的控制器资源策略,你需要这样写:
<?php
namespace App\Http\Controllers;
use App\Advertisement;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AdvertisementController extends Controller
{
public function __construct()
{
$this->authorizeResource(Advertisement::class, 'advertisement');
}
}
文档是隐藏了什么,还是隐藏了什么?
创建于
php artisan make:policy AdvertisementPolicy --model=Advertisement
class AdvertisementPolicy
{
use HandlesAuthorization;
/**
* Determine whether the user can view any advertisements.
*
* @param \App\User $user
* @return mixed
*/
public function viewAny(User $user)
{
return false;
}
public function view(User $user, Advertisement $advertisement)
{
return false;
}
模型也是用 cli 创建的
namespace App;
class Advertisement extends Model
{
通过以下方式注册:
use App\Advertisement;
use App\Policies\AdvertisementPolicy;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
Advertisement::class => AdvertisementPolicy::class,
这里是否有任何额外的步骤来完成此政策注册laravel 6?
文档中没有任何隐藏内容。你就是没仔细看文档
请查看 Authorizing Actions Using Policies 部分。
永远不会调用您的政策,因为您没有在代码中的任何地方使用它。至少,如果你需要 运行 你的控制器资源策略,你需要这样写:
<?php
namespace App\Http\Controllers;
use App\Advertisement;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AdvertisementController extends Controller
{
public function __construct()
{
$this->authorizeResource(Advertisement::class, 'advertisement');
}
}