Bonjour à tous,
lorsque j'utilise Gate et qu'il me retourne true ou false tout s'affiche bien sur ma page (la page et la partie @can).
Cependant dès que j'ai un null il me met se message :

Type error: Argument 4 passed to App\Providers\AuthServiceProvider::App\Providers{closure}() must be an instance of App\Inscrit, null given, called in D:\wamp64\www\grandraid\vendor\laravel\framework\src\Illuminate\Auth\Access\Gate.php on line 338 (View: D:\wamp64\www\grandraid\resources\views\evenements\show.blade.php)

Il me dit donc qu'un argument est manquant.
Ce qui est normal vue qu'uil récupère null dans un des arguments.

Comment puis-je faire pour que la page s'affiche mais n'affiche pas ce qu'il y'a dans le @can uniquement au lieu de cette page d'erreur ?

Merci d'avance pour vos conseils.

3 réponses


Bonjour,

peux-tu poster le code de AuthServiceProvider pour qu'on puisse comprendre ?

Merci

Nouchi35
Auteur

Bonjour,
merci mais j'ai trouver la solution.

Enfaite c'est dans ma function Gates, les paramètres que j'ai mis étaient les suivants :
( Arg1 $arg1, Arg2 $arg2, Arg3 $arg3)
Hors dans mon controller j'avais ce ci :
$arg3 = $this->Arg3Repository->selectwhere('arg1', $arg2);

Et la solution était de mettre dans ma function gate le paramètre comme suit ( Arg1 $arg1, Arg2 $arg2, $arg3)
if ( $arg3 != null)aroundreturn truearoundelse aroundreturn true.around

Car si les paramètres dans ma function gates comme dans ma première tentative cela buguai.

Je n'ai pas tout saisi, mais tant mieux si ça refonctionne :)