无法从刀片视图调用模型中定义的函数

时间:2015-05-21 05:02:11

标签: laravel laravel-5

我有一个用户模型。用户模型与角色模型相关,这样每个用户只能为用户分配一个角色。其中一个角色是供应商角色。为了检查当前用户是否是供应商,我做了类似的事情

    protected function isVendor()
{
     $roles = Role::where('role_slug', 'vendor')->get();
     if(isset($roles) && $roles->count() > 0)
        return true;
    return false;

}

我使用我刀片中的以下代码说明当前用户是供应商并执行更多操作(比如显示更多面板)

<p>{!! Auth::user()->isVendor !!}</p>

但是我一直收到此错误

  

关系方法必须返回类型为Illuminate \ Database \ Eloquent \ Relations \ Relation

的对象

你知道为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:1)

首先,您的方法受到保护,这意味着您无法像这样调用它。将其更改为公开。

其次,你试图访问像propery这样的函数,所以Eloquent试图解决一个关系,而不是调用你的函数。所以调用你的函数的正确方法是:

<p>{!! Auth::user()->isVendor() !!}</p>