'Why does my custom directive shows parameters error when they are receiving them?
I made a custom conditional directive to determine if a user is allowed or not by the role.
Blade::if('isAllow', function($type, $my_role_id) {
//dd($type, $my_role_id);
$rol = Role::where('name', $type)->first();
return $my_role_id == $rol->id? true : false;
});
I use it this way.
@isAllow('Requestor', Auth()->user()->role_id) All @elseisAllow Reviewed @endisAllow
If into the directive, I put a dd() to see the values, it shows them to me without much problem.
But, when I want to use it in the template, it shows me the following error:
Too few arguments to function App\Providers\AppServiceProvider::App\Providers\{closure}(), 0 passed and exactly 2 expected
I can't find a solution to explain me why is not getting any param when it does. Any help?
Solution 1:[1]
you wrote @elseisAllow which is close to the meaning of else if and after @elseisAllow you did not provide arguments so you are getting error . if you don't want to check another condition just use @else
but if you want to check more you should provide arguments that would be something like this : @elseisAllow('Author',auth()->user()->role_id)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | AlirezaSalehi |

