在 Laravel 中,我撰寫了一個控制臺命令來執行資料庫操作。該命令應采用兩個引數:<single> 和 <plural>。控制臺命令應如下所示:$ php artisan entities:make pagespeed_sample pagespeed_samples. 這個簡短的程式位于由 composer 安裝的供應商包中:https ://packagist.org/packages/phitech/entities 。當我在我的 laravel 應用程式的 /routes/console.php 中測驗它時,它作業正常。但是現在將它作為一個包安裝后,它就不起作用了。順便說一句,我不知道我是否改變了中間的任何東西來打破它。
程式回傳錯誤:““entities:make”命令沒有引數,得到“pagespeed_sample”。.
為什么它說它不期待任何爭論?此外,當我嘗試不帶引數時,它回傳錯誤:"Unable to resolve dependency [Parameter #0 [ $single ]] in class Illuminate\Foundation\Console\ClosureCommand"。
除了回呼中需要的引數之外,有沒有辦法為我的命令顯式定義預期的引數?
此控制臺命令的完整代碼如下所示。我正在使用 Laravel 框架 9.35.1。
Artisan::command('entities:make', function ($single, $plural) {
$entity_definition = json_encode([
"entity_name" => $single,
"main_db_table" => $plural,
"meta_db_table" => $plural . "_meta",
"meta_instance_id" => $single . "_id",
"main_required_columns" => [$single . "_id"],
]);
DB::table('entities')->insert([
'name' => $single,
'definition' => $entity_definition
]);
})->purpose('Register a new entity definition.');
uj5u.com熱心網友回復:
閉包命令引數需要成為命令定義的一部分,例如
Artisan::command('entities:make {single} {plural}', function ($single, $plural) {
$entity_definition = json_encode([
"entity_name" => $single,
"main_db_table" => $plural,
"meta_db_table" => $plural . "_meta",
"meta_instance_id" => $single . "_id",
"main_required_columns" => [$single . "_id"],
]);
DB::table('entities')->insert([
'name' => $single,
'definition' => $entity_definition
]);
})->purpose('Register a new entity definition.');
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/514632.html
標籤:php拉拉维尔
下一篇:忽略更新Laravel中的變數
