I am new to Laravel and am struggling to implement a simple Policy 🙂
Just for testing I did ->
/app/Policies/ReleasePolicy.php:
<?php
namespace AppPolicies;
use AppModelsRelease;
use AppModelsUser;
use IlluminateAuthAccessResponse;
class ReleasePolicy
{
public function edit(): bool
{
return false;
}
}
routes/web.php:
<?php
use AppModelsRelease;
use IlluminateSupportFacadesRoute;
use AppHttpControllersReleaseController;
Route::resource('/release', ReleaseController::class);
app/http/controllers/ReleaseController.php:
<?php
namespace AppHttpControllers;
use AppModelsRelease;
use IlluminateHttpRequest;
use IlluminateHttpRedirectResponse;
use IlluminateHttpResponse;
use IlluminateViewView;
use AppHttpRequestsReleaseStoreRequest;
use AppHttpRequestsReleaseUpdateRequest;
class ReleaseController extends Controller
{
/**
* Show the form for editing the specified resource.
*/
public function edit(Release $release): View
{
return view('pages.release.edit', compact('release'));
}
}
When I go to http://localhost:8000/release/56/edit , it still opens, I expected 403. What am I doing wrong?
I assume the policy is not registered/discovered, but why not? The laravel/docs says:
By default, Laravel automatically discover policies as long as the model and policy follow standard Laravel naming conventions. Specifically, the policies must be in a Policies directory at or above the directory that contains your models.
And that’s exactly what I did but I think the policy is still not discovered…
I tried to manually register the policy in app/Providers/AppServiceProvider.php
<?php
namespace AppProviders;
use AppModelsRelease;
use AppPoliciesReleasePolicy;
use IlluminateSupportServiceProvider;
use IlluminateSupportFacadesGate;
use AppModelsUser;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Gate::policy(Release::class, ReleasePolicy::class);
}
}
Nothing changed. http://localhost:8000/release/56/edit doesnt show 403
Puka is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.