Factory/Faker не работает в Laravel 5.3 DatabaseSeeder

Я перенес свой код с Laravel 5.2 на 5.3, все работает нормально, за исключением случаев, когда я запускаю свой DatabaseSeeder. Это отлично работало в Laravel 5.2, теперь, когда я пытаюсь запустить php artisan db:seed в 5.3, я получаю эту ошибку, когда Seeder использует Faker:

[BadMethodCallException] Call to undefined method Illuminate\Database\Query\Builder::lists()

Вроде все правильно установлено.

Пример кода:

<?php

use App\Models\Gallery;
use App\Models\GalleryImage;
use Illuminate\Database\Seeder;

class GalleryImageTableSeeder extends Seeder
{

    public function run()
    {
        DB::table('gallery_images')->delete();

        $faker = Faker\Factory::create();
        $gallery = Gallery::lists('id')->All();

        foreach(range(1, 98) as $index) {
            GalleryImage::create([
                'page_id' => null,
                'gallery_id' => $faker->randomElement($gallery),
                'alt' => 'Image description',
                'large' => '201508183828fh5ntu80ub-or.jpg',
                'medium' => '201508183828fh5ntu80ub-lg.jpg',
                'thumbnail' => '201508183828fh5ntu80ub-th.jpg',
                'order' => 1,
                'cover' => false,
                'visibility' => 'visible',
            ]);
        }

    }
}

person Jack Barham    schedule 24.08.2016    source источник


Ответы (1)


Наконец я узнал это mysql. Нужно изменить list на pluck

Пример:

$gallery = Gallery::pluck('id')->All();
person Jack Barham    schedule 24.08.2016