为什么自己没有处理雄辩的查询(laravel 5.3)?

时间:2017-01-22 23:13:02

标签: php laravel laravel-5.3 self laravel-eloquent

我的存储库代码是这样的:

public function getStatusList()
{
    $query = UsersBank::where('user_id', '=', auth()->user()->id)
                      ->where('status', '=', 1)
                      ->count();
    dd($query);               
}

dd($ query)的结果= 1,它是真的

但我这样尝试自己:

public function getStatusList()
{
    $query = self::where('user_id', '=', auth()->user()->id)
                      ->where('status', '=', 1)
                      ->count();
    dd($query);               
}

dd($ query)的结果= 4,它是假的

为什么在使用self时,结果不正确?

2 个答案:

答案 0 :(得分:2)

self仅适用于静态类/属性我认为你的不是。请改用$ this。

喜欢这个

$query = $this->where('user_id', '=', auth()->user()->id)
              ->where('status', '=', 1)
              ->count();

答案 1 :(得分:0)

阅读手册: http://php.net/manual/en/language.functions.php

如果使用静态方法,则只能使用self :: staticMethod();或命名空间。

如果您使用非静态方法,则可以使用$ this-> method();