2015-03-01 3 views
4

Есть ли способ запустить сеялку Laravel 5 из PHP, а не из командной строки. Хостинг, который я использую, не позволяет мне использовать командную строку. Просто, чтобы подтвердить, что я хочу сделать эквивалент этого, но в моем приложении код:Запустить сеялку Laravel 5 программно вместо CLI

php artisan db:seed 

ответ

8

Вы можете использовать следующий метод:

Artisan::call('db:seed'); 

Чтобы получить вывод команды последнего запуска, вы можете использование:

Artisan::output(); 
+0

Связанный: Как вы называете это для определенного класса? Например, если вы хотите назвать эквивалент 'php artisan db: seed -class = User'? Я вижу, что вы передаете массив функции 'Artisan :: call()', но я получаю исключение недопустимого аргумента, когда я использую 'Artisan :: call ('db: seed', ['class' => 'Users' ]) 'say« Аргумент класса не существует ». – Kirkland

+1

Artisan :: call ('command: name', array ('argument' => 'foo', '--option' => 'bar')); См. Https://laravel.com/docs/4.2/commands#calling-other-commands – Cameron

+0

Ответ ниже - это намного лучший вариант – Thomas

4

Вы также можете позвонить непосредственно классу Seeder, если необходимо. Просто убедитесь, что вы сделали автозагрузку композитора, если вы создали свою сеялку вручную.

Оттуда код очень прост:

$seeder = new YourSeederClass(); 
$seeder->run(); 
Смежные вопросы