Я вызываю пользовательскую команду Artisan, которая обычно выводит вывод при запуске. Однако при вызове от DatabaseSeeder
интерфейс по умолчанию не разделяется, поэтому вывод не выводится. Есть ли способ передать интерфейс интерфейса консоли от DatabaseSeeder
до Artisan:call
?Отображает вывод команды Artisian из DatabaseSeeder
Если примеры более ваша вещь:
class DatabaseSeeder extends Seeder {
public function run() {
Eloquent::unguard();
$this->call('ApplicationsSeeder');
foreach(Config::get('app.steam_appids') as $appid) {
Artisan::call('schema:update', array('appid' => $appid)); // No output :(
}
...
Artisan::call
может принимать третий аргумент, но он должен реализовать Symphony\Component\Console\Output\OutputInterface
, и я не уверен, если я могу передать, что из объекта сеялки.
Это не работает в Laravel 5; похоже, что аргумент $ output для 'Artisan :: call()' удален. У кого-нибудь есть обходной путь? – sgtdck
Yay, решил. 'Artisan :: output()' возвращает результат последней управляемой команды artisan. Поэтому после выполнения 'Artisan :: call (...)' вы можете сделать '$ this-> command-> info (Artisan :: output());', чтобы показать результат. – sgtdck