Laravels Artisan::call('migrate:status') 作为 json 响应
Laravels Artisan::call('migrate:status') as json response
我想在控制器中获取我的 laravel 应用程序的迁移状态作为 json 响应,我尝试
$migratiorns = \Artisan::call('migrate:status');
return response()->json($migratiorns);
但是 \Artisan::call
returns 一个整数 0
。
我的案例应该使用什么来获得所需的响应?
$migration 的值将是您在命令行上看到的输出,类似于 table,它基本上是一个无法转换为 json.[= 的字符串值10=]
这个问题已经很老了,但我遇到了同样的问题,但没有找到任何解决方案,所以我做了一个小助手函数来即时获得挂起的迁移,也许它会对其他人有所帮助:
function getPendingMigration($migrationsFolderPath = false, $toJson = false)
{
$migrationsFolderPath = $migrationsFolderPath ?: database_path('/migrations');
$migrations = app('migrator')->getMigrationFiles($migrationsFolderPath);
$pendingMigrations = [];
foreach ($migrations as $migration => $fullpath){
if(!\Illuminate\Support\Facades\DB::table('migrations')->where('migration', $migration)->exists())
array_push($pendingMigrations, $migration);
}
return $toJson ? json_encode($pendingMigrations) : $pendingMigrations;
}
这是我的控制台代码
protected $signature = 'command:name {json?}';
ini句柄函数
public function handle()
{
$json = $this->argument('json');
if($json){
$a = ['foo'=>
['bar', $json]
];
$a = collect($a);
$this->info($a->toJson());
} else {
$this->info('Display this on the screen');
}
}
就运行
php artisan command:name -json
将得到 json 输出
一个简单的方法如下
\Artisan::call('migrate:status');
dd(Artisan::output());
我想在控制器中获取我的 laravel 应用程序的迁移状态作为 json 响应,我尝试
$migratiorns = \Artisan::call('migrate:status');
return response()->json($migratiorns);
但是 \Artisan::call
returns 一个整数 0
。
我的案例应该使用什么来获得所需的响应?
$migration 的值将是您在命令行上看到的输出,类似于 table,它基本上是一个无法转换为 json.[= 的字符串值10=]
这个问题已经很老了,但我遇到了同样的问题,但没有找到任何解决方案,所以我做了一个小助手函数来即时获得挂起的迁移,也许它会对其他人有所帮助:
function getPendingMigration($migrationsFolderPath = false, $toJson = false)
{
$migrationsFolderPath = $migrationsFolderPath ?: database_path('/migrations');
$migrations = app('migrator')->getMigrationFiles($migrationsFolderPath);
$pendingMigrations = [];
foreach ($migrations as $migration => $fullpath){
if(!\Illuminate\Support\Facades\DB::table('migrations')->where('migration', $migration)->exists())
array_push($pendingMigrations, $migration);
}
return $toJson ? json_encode($pendingMigrations) : $pendingMigrations;
}
这是我的控制台代码
protected $signature = 'command:name {json?}';
ini句柄函数
public function handle()
{
$json = $this->argument('json');
if($json){
$a = ['foo'=>
['bar', $json]
];
$a = collect($a);
$this->info($a->toJson());
} else {
$this->info('Display this on the screen');
}
}
就运行
php artisan command:name -json
将得到 json 输出
一个简单的方法如下
\Artisan::call('migrate:status');
dd(Artisan::output());