2017-08-22 3 views
0

Normalerweise haben Sie mit einer Richtlinie nur die Parameter user und ein entsprechendes Modell. Es scheint jedoch nicht zu funktionieren, benutzerdefinierte Parameter anzuhängen.Benutzerdefinierter Autorisierungsparameter für eine Richtlinie

Was ich möchte:

// MyModelPolicy.php 
class MyModelPolicy 
{ 
    public function foo(User $user, MyModel $model, $someString) { /* ... */ } 
} 

Und dann in Blade:

// some.blade.php 
@can('foo', $myModelInstance, 'tralala') 

Allerdings erhalte ich die Fehlermeldung, dass foo genau drei Parameter erwartet und nur zwei bekommen. Laravel Gate liefert nur zwei und ignoriert 'tralala'.

Was ist der einfachste Weg, um das zu erreichen, was ich begehre?

Antwort

0

Nun stellt sich heraus, dass dies einfacher als Gedanke an ... Die Dokumentation schlägt fehl ein kurzes Beispiel dazu geben, aber alles, was Sie tun müssen, ist, @can in einer bestimmten Weise zu verwenden:

// some.blade.php 
@can('foo', [$myModelInstance, 'tralala']) 

Nun, wenn Sie die API-Referenz nachschlagen, werden Sie sehen, dass can ein Array will und der Rest folgt.

Verwandte Themen