如何在不使用命令行的情况下运行 Laravel artisan 命令

我正在开发一个Laravel package将使用自定义工匠命令,即php artisan make:baserepository User -c. -c意味着我也会创建一个controller。


我希望当我运行这个工匠命令时,我能够创建一个controller. 这是我创建控制器的代码。


protected function createController() {

     $modelsingular = Str::singular(Str::ucfirst($this->getNameInput()));

     $modelplural = Str::plural($modelsingular);


     $controller = Str::studly(class_basename($this->argument('name')));

     $modelName = $this->qualifyClass($modelplural . '/' . $modelsingular);


     $this->call('make:controller', [

            'name' => "{$modelplural}\{$controller}Controller",

            '--model' => $this->option('resource') ? $modelName : null,

     ]);

}


看看这条线'name' => "{$modelplural}\{$controller}Controller"。我希望控制器是这样Admin\Admin.php的Http\Controllers,而不是我得到Admin\{Admin}Controller.php。我在哪里弄错了?


我希望我的问题很清楚。


繁星点点滴滴
浏览 102回答 3
3回答

POPMUISE

Artisan::call()你可以用函数调用你的命令举个例子:Route::get('/foo', function () {    $exitCode = Artisan::call('email:send', [        'user' => 1, '--queue' => 'default'    ]);});原始文档可以在这里找到:Artisan #calling-commands-via-code

慕后森

protected function createController() {     $modelsingular = Str::singular(Str::ucfirst($this->getNameInput()));     $modelplural = Str::plural($modelsingular);     $controller = Str::studly(class_basename($this->argument('name')));     $modelName = $this->qualifyClass($modelplural . '/' . $modelsingular);     $this->call('make:controller', [            'name' => $modelplural.'\'.$controller.'Controller',            '--model' => $this->option('resource') ? $modelName : null,     ]);}

子衿沉夜

$a = 'there';echo "hi\{$a}";// hi\{there}\之前是这里的{问题。echo "hi\\{$a}";// hi\there现在我们正在逃避\as \\。"{$modelplural}\\{$controller}Controller"// Admin\AdminController
打开App,查看更多内容
随时随地看视频慕课网APP