Почему я не работаю над красноречивым запросом (laravel 5.3)?

Код моего репозитория такой:

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 результат неверный?


person samuel toh    schedule 22.01.2017    source источник
comment
self работает только со статическими классами/свойствами, попробуйте $this   -  person RiggsFolly    schedule 23.01.2017


Ответы (2)


self работает только для статических классов/свойств, я предполагаю, что у вас нет. Вместо этого используйте $this.

Как это

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

Прочтите руководство: http://php.net/manual/en/language.functions.php

Если вы используете статический метод, вы можете использовать только self::staticMethod(); или пространство имен.

Если вы используете нестатический метод, вы можете использовать $this->method();

person heroo    schedule 23.01.2017