为什么我的自定义指令在接收参数时显示参数错误?

Why does my custom directive shows parameters error when they are receiving them?

我制作了一个自定义条件指令来确定角色是否允许用户。

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;
});

我是这样用的

@isAllow('Requestor', Auth()->user()->role_id) All @elseisAllow Reviewed @endisAllow

如果在指令中,我放了一个 dd() 来查看值,它会毫无问题地显示给我。

但是,当我想在模板中使用它时,它显示以下错误:

Too few arguments to function App\Providers\AppServiceProvider::App\Providers\{closure}(), 0 passed and exactly 2 expected

我找不到解决方案来解释为什么在获取任何参数时没有获取任何参数。有帮助吗?

你写了 @elseisAllow 这接近于 else if 的意思并且在 @elseisAllow 之后你没有提供参数所以你是得到错误。 如果您不想检查另一个条件,只需使用 @else

但是如果你想检查更多,你应该提供像这样的参数:@elseisAllow('Author',auth()->user()->role_id)