LaravelRUS / SleepingOwlAdmin

🦉 Administrative interface builder for Laravel (Laravel admin)
http://sleepingowladmin.ru/
MIT License
800 stars 216 forks source link

Ошибка в функционировании AdminColumn::order(); #810

Closed fireunix closed 6 years ago

fireunix commented 6 years ago

ru

Версия в композере

4.*@dev

Что надо сделать что бы увидеть ошибку?

  1. В секции, поле для которого нужна сортировка. AdminDisplay -> AdminColumn::order();
  2. В Админ панели сделать в поле moveUp или moveDown. ПРИМЕР:

AdminDisplay::datatablesAsync()->setName('stop')->setModelClass(vacants::class) ->setHtmlAttribute('class', 'table-primary') ->setColumns( AdminColumn::text('post', 'Должность'), AdminColumn::text('exp', 'Требуемый опыт'), AdminColumn::text('price', 'З/П'), AdminColumn::text('enable', 'Актуально'), AdminColumn::order() );

Что должно сработать?

  1. Должно выполниться действие согласно заданному. moveUp или moveDown

Что сработало?

Во время нажатия на moveUp или moveDown. Получаем ошибку

FatalThrowableError Type error: Argument 1 passed to App\vacants::scopeFindByPosition() must be an instance of Illuminate\Database\Query\Builder, instance of Illuminate\Database\Eloquent\Builder given, called in /home/tyson/sites/rtc/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php on line 934

in OrderableModel.php (line 118)

Что я предпринял, что бы избавиться от ошибки. Файл: vendor/laravelrus/sleepingowl/src/Traits/OrderableModel.php строка 118. Функция: public function scopeFindByPosition(Builder $query, $position) { $query->where($this->getOrderField(), $position); } Привел к виду: public function scopeFindByPosition($position) { static::where($this->getOrderField(), $position); }

vAlfred88 commented 6 years ago

Не смог воспроизвести ошибку. @fireunix

Butochnikov commented 6 years ago

@fireunix решил проблему?

fireunix commented 6 years ago

Жесткими методами. Переустановил фреймворк и перезалил админку, проблема исчезла