Bonjour à tous,
voici mon problème.

J'ai suivis le tuto pour utiliser Gate de Laravel.
La première partie avec :

Gate::define('update-post', function (User $user) {around return $user->isAdmin();around});

Fonctionne très bien.

C'est lorsque je veux reproduire ce code que ça bug :

Gate::define('update-post', function ($user, $post) {around return $user->id == $post->user_id;around});

J'ai fais fais comme ceci :

Gate::define('update-post', function (User $user, Evenement $evenement) {around return $user->id == $evenement->user_id;around});

et voici le message d'erreur que j'ai :

Type error: Too few arguments to function App\Providers\AuthServiceProvider::App\Providers{closure}(), 1 passed in D:\wamp64\www\grandraid\vendor\laravel\framework\src\Illuminate\Auth\Access\Gate.php on line 338 and exactly 2 expected (View: D:\wamp64\www\grandraid\resources\views\evenements\show.blade.php)

A votre avis d'ou peut venir mon souci.

Je suspect le fait que j'ai ajouter le paramètre Evenement et qu'il ne veut en prendre qu'un ou alors des paramètres précis.

Merci d'avance pour vos aides.

3 réponses


Comment appelles-tu la policy ?

Bonjour,

Tu es sûr que tu es obligé de typer ton objet $evenement ?

@Neewd a priori quand on regarde l'erreur (Too few arguments to function) ce n'est pas le problème.