From 792dff3d46b9934ac64262d2d80dfb5934b820da Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Wed, 18 Oct 2017 14:25:18 +0800 Subject: [PATCH] Add use base controller statement on generated controller with parent --- src/CrudMake.php | 17 ++++++++++++++--- tests/Generators/ControllerGeneratorTest.php | 1 + tests/Generators/RouteWebGeneratorTest.php | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/CrudMake.php b/src/CrudMake.php index 193d284..69880f6 100644 --- a/src/CrudMake.php +++ b/src/CrudMake.php @@ -324,9 +324,20 @@ class CrudMake extends Command $controllerFileContent = $this->replaceStubString($stub); if (! is_null($parentName = $this->option('parent'))) { + + $searches = [ + 'App\Http\Controllers;', + "use {$this->modelNames['full_model_name']};\n" + ]; + + $replacements = [ + "App\Http\Controllers\\{$parentName};", + "use {$this->modelNames['full_model_name']};\nuse App\Http\Controllers\Controller;\n" + ]; + $controllerFileContent = str_replace( - 'App\Http\Controllers', - 'App\Http\Controllers\\'.$parentName, + $searches, + $replacements, $controllerFileContent ); } @@ -458,7 +469,7 @@ class CrudMake extends Command $webRouteFileContent = str_replace( $pluralModelName.'Controller', - $parentName.'/'.$pluralModelName.'Controller', + $parentName.'\\'.$pluralModelName.'Controller', $webRouteFileContent ); } diff --git a/tests/Generators/ControllerGeneratorTest.php b/tests/Generators/ControllerGeneratorTest.php index 05bbb24..08f9e22 100644 --- a/tests/Generators/ControllerGeneratorTest.php +++ b/tests/Generators/ControllerGeneratorTest.php @@ -213,6 +213,7 @@ class CategoriesController extends Controller namespace App\Http\Controllers\Projects; use App\Entities\References\Category; +use App\Http\Controllers\Controller; use Illuminate\Http\Request; class CategoriesController extends Controller diff --git a/tests/Generators/RouteWebGeneratorTest.php b/tests/Generators/RouteWebGeneratorTest.php index eda0b04..446eddf 100644 --- a/tests/Generators/RouteWebGeneratorTest.php +++ b/tests/Generators/RouteWebGeneratorTest.php @@ -29,7 +29,7 @@ Route::apiResource('{$this->table_name}', '{$this->plural_model_name}Controller' $this->assertFileExists($routeWebPath); $routeWebFileContent = "table_name}', 'Projects/{$this->plural_model_name}Controller'); +Route::apiResource('{$this->table_name}', 'Projects\\{$this->plural_model_name}Controller'); "; $this->assertEquals($routeWebFileContent, file_get_contents($routeWebPath)); }