Aufruf der undefinierten Methode Illuminate\Database\Query\Builder::lists() beim Seeding nach dem Update auf Laravel 5.3

Lesezeit: 5 Minuten

Benutzer-Avatar
Juliazin

Ich aktualisiere auf Laravel 5.3 und erhalte diese Meldung:

[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}  

Ich habe den Code überprüft, der es verursacht:

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

Ich verstehe nicht warum.

Wenn ich es kommentiere, bekomme ich das gleiche Problem in einer anderen Datei:

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

Ich habe eine globale Suche nach “Listen” ohne Erfolg durchgeführt …

Irgendeine Idee warum das passiert???

  • stellst du bitte den ganzen fehler ein

    – LF00

    24. August 2016 um 4:07 Uhr

  • Ich hatte es in der Konsole, deshalb hatte ich keine vollständigen Protokolle

    – Juliatzin

    24. August 2016 um 4:16 Uhr

  • github.com/cviebrock/eloquent-sluggable/issues/302

    – Juliatzin

    24. August 2016 um 4:18 Uhr

  • Ich glaube, ich habe es verstanden, du kannst es als Antwort setzen!

    – Juliatzin

    24. August 2016 um 4:18 Uhr

  • Mit einem Dienst wie Laravel-Verschiebung ist eine großartige Möglichkeit, um sicherzustellen, dass Ihre Laravel-Anwendung vollständig aktualisiert wird, einschließlich solcher Fallstricke bei der Abwertung.

    – Jason McCreary

    24. August 2016 um 4:33 Uhr


Benutzer-Avatar
Sang Nguyen

Sie können Methode verwenden zupfen. Methode lists wird in Laravel 5.3 entfernt. ich habe mich verändert lists('key')->all() zu pluck('key')->all() und es funktioniert jetzt.

  • Hallo Sang Wo Sie Pluck durch Listen ersetzt haben, habe ich das gleiche Problem mit der create-Methode der Eloquent-Klasse, verstehe aber nicht, wo genau ich Pluck durch Listen ersetzen muss

    – Juniid Ali

    9. Januar 2017 um 13:59 Uhr

  • Hallo Junaid, Sie müssen ersetzen, wo Sie verwenden lists Methode.

    – Sang Nguyen

    11. Januar 2017 um 2:47 Uhr

  • Vielen Dank für Ihre Antwort. Ich habe mein Problem tatsächlich behoben, indem ich die eloquent-sluggable-Bibliothek aktualisiert habe

    – Juniid Ali

    11. Januar 2017 um 7:35 Uhr

Laravel 5.3, wird die Methode „lists()“ zugunsten der Methode „pluck()“ entfernt. Zum Beispiel:

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

  • Anscheinend meisterst du Laravel. Ich brauche deine Hilfe. Schau mal hier: stackoverflow.com/questions/41047583/…

    – Mose toh

    9. Dezember 2016 um 3:06 Uhr

lists() wurde abgelehnt. Verwenden pluck() stattdessen.

Die list-Methode für die Objekte Collection, Query Builder und Eloquent Query Builder wurde in pluck umbenannt. Die Methodensignatur bleibt gleich.

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

  • Ich brauche deine Hilfe. Schau mal hier: stackoverflow.com/questions/41887504/…

    – Mose toh

    27. Januar 2017 um 6:42 Uhr


  • Es ist erstaunlich zu sehen, wie Sie eine Lösung für das Problem von OP finden und bekommen 0 (null!) Upvotes. Und zwei Typen, die in 5 und 30 Stunden genau dasselbe posten und sie bekommen 27 und 12 positive Stimmen.

    – Alexey Mezenin

    27. Januar 2017 um 6:56 Uhr

  • Ich weiß es auch nicht. Warum ist es passiert? Vielleicht ist mein Englisch nicht gut und meine Frage ist nicht so gut

    – Mose toh

    27. Januar 2017 um 10:39 Uhr

  • lol @AlexeyMezenin sie lieben Copy und Past du solltest immer an einem Beispiel vorbei sein ^^

    – Charif DZ

    13. Mai 2017 um 10:27 Uhr

Benutzer-Avatar
Rai Ahmad Fraz

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
class ApiController extends Controller
{
    public function data()
    {
        $data = team::all();
        return $data;    
    }
}

1250880cookie-checkAufruf der undefinierten Methode Illuminate\Database\Query\Builder::lists() beim Seeding nach dem Update auf Laravel 5.3

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy