2016-08-24 1 views
24

Я обновляю к Laravel 5.3, и я получаю сообщение:Вызов неопределенной метод Осветите Database Query Builder :: списки() при посеве после обновления до Laravel 5,3

[2016-08-23 23:12:39] local.ERROR: BadMethodCallException: Call to undefined method Illuminate\Database\Query\Builder::lists() in /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2431 
Stack trace: 
#0 [internal function]: Illuminate\Database\Query\Builder->__call('lists', Array) 
#1 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1423): call_user_func_array(Array, Array) 
#2 /home/vagrant/Code/vendor/cviebrock/eloquent-sluggable/src/SluggableTrait.php(254): Illuminate\Database\Eloquent\Builder->__call('lists', Array) 
#3 /home/vagrant/Code/vendor/cviebrock/eloquent-sluggable/src/SluggableTrait.php(170): App\User->getExistingSlugs('nouseratnouser-...') 
#4 /home/vagrant/Code/vendor/cviebrock/eloquent-sluggable/src/SluggableTrait.php(312): App\User->makeSlugUnique('nouseratnouser-...') 
#5 /home/vagrant/Code/vendor/cviebrock/eloquent-sluggable/src/SluggableServiceProvider.php(72): App\User->sluggify() 
#6 [internal function]: Cviebrock\EloquentSluggable\SluggableServiceProvider->Cviebrock\EloquentSluggable\{closure}(Object(App\User)) 
#7 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(221): call_user_func_array(Object(Closure), Array) 
#8 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(164): Illuminate\Events\Dispatcher->fire('eloquent.saving...', Array, true) 
#9 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1664): Illuminate\Events\Dispatcher->until('eloquent.saving...', Object(App\User)) 
#10 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(1456): Illuminate\Database\Eloquent\Model->fireModelEvent('eloquent.saving...') 
#11 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(562): Illuminate\Database\Eloquent\Model->save() 
#12 /home/vagrant/Code/database/seeds/UserSeeder.php(34): Illuminate\Database\Eloquent\Model::create(Array) 
#13 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Seeder.php(39): UserSeeder->run() 
#14 /home/vagrant/Code/database/seeds/DatabaseSeeder.php(37): Illuminate\Database\Seeder->call('UserSeeder') 
#15 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php(63): DatabaseSeeder->run() 
#16 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(2279): Illuminate\Database\Console\Seeds\SeedCommand->Illuminate\Database\Console\Seeds\{closure}() 
#17 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php(64): Illuminate\Database\Eloquent\Model::unguarded(Object(Closure)) 
#18 [internal function]: Illuminate\Database\Console\Seeds\SeedCommand->fire() 
#19 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.php(507): call_user_func_array(Array, Array) 
#20 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.php(169): Illuminate\Container\Container->call(Array) 
#21 /home/vagrant/Code/vendor/symfony/console/Command/Command.php(256): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#22 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.php(155): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#23 /home/vagrant/Code/vendor/symfony/console/Application.php(818): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#24 /home/vagrant/Code/vendor/symfony/console/Application.php(186): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Database\Console\Seeds\SeedCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#25 /home/vagrant/Code/vendor/symfony/console/Application.php(117): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#26 /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#27 /home/vagrant/Code/artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#28 {main} 

Я проверил код, который вызывает его:

 User::create([ 
     'name' => 'No User', 
     'email' => '[email protected]', 
     'password' => bcrypt('0'), 
     'provider' => '0', 
    ]); 

Не понимаю, почему.

Если я комментирую его, я получаю ту же проблему в другом файле:

 Tournament::create([ 
     'user_id' => 1, 
     'name' => "name", 
     'dateIni' => $dateIni, 
     'dateFin' => $dateIni, 
    ]); 

Я сделал глобальный поиск «списков» без успеха ...

Любая идея, почему это что происходит ???

+1

вы, пожалуйста, все ошибки в –

+0

я имел его в консоли, поэтому я не имел полные журналы –

+1

https://github.com/cviebrock/eloquent-sluggable/issues/302 –

ответ

54

Вы можете использовать метод срывать. Метод lists 'удален в Laravel 5.3. Я изменил lists('key')->all() до pluck('key')->all() и теперь он работает.

+0

Здравствуйте, Sang Где вы заменили сборщик списками, у меня такая же проблема с методом создания красноречивый класс, но не понимаю, где именно я должен заменить выщипывание списками –

+0

Привет, Джунайд, вам нужно заменить, где вы используете метод 'lists'. –

+0

спасибо за ваш ответ Я действительно исправил свою проблему, обновив библиотеку eloquent-sluggable. –

5

lists() был устаревшим. Вместо этого используйте pluck().

Метод списков в сборнике, построителе запросов и запросе на запрос объектов-строителей был переименован в pluck. Подпись метода остается неизменной.

https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0

+0

Мне нужна помощь. Посмотрите здесь: http://stackoverflow.com/questions/41887504/how-to-solve-missing-argument-1-for-app-repositories-favoriterepositorydelete/41887543 –

+0

Удивительно видеть, как вы находите решение для Проблема OP и получение '0' (ноль!) Upvotes. И два парня, которые отправляют ровно то же самое через 5 и 30 часов, и получают «27» и «12» вверх. –

+0

Я тоже не знаю. Почему так случилось? Может быть, мой английский не очень хорош, и мой вопрос не так хорош. –

18

Laravel 5.3, метод списков() удаляется в пользу метода pluck(). Для примера:

$userList = App\User::pluck('name', 'id'); 
+0

Кажется, вы мастер laravel. Мне нужна твоя помощь. Смотрите здесь: http://stackoverflow.com/questions/41047583/how-to-add-dynamic-dropdown-list-column-on-laravel-5-3-регистрация –

Смежные вопросы