|
2 | 2 |
|
3 | 3 | namespace Mehradsadeghi\CrudGenerator; |
4 | 4 |
|
5 | | -use Illuminate\Routing\Console\ControllerMakeCommand; |
6 | | -use Illuminate\Support\Facades\File; |
7 | | -use Illuminate\Support\Facades\Schema; |
| 5 | +use Exception; |
8 | 6 | use Illuminate\Support\Str; |
9 | 7 | use Illuminate\Support\Facades\DB; |
10 | | -use Symfony\Component\Console\Input\InputArgument; |
| 8 | +use Illuminate\Support\Facades\File; |
| 9 | +use Illuminate\Support\Facades\Schema; |
11 | 10 | use Symfony\Component\Console\Input\InputOption; |
| 11 | +use Symfony\Component\Console\Input\InputArgument; |
| 12 | +use Illuminate\Routing\Console\ControllerMakeCommand; |
12 | 13 |
|
13 | 14 | class CrudGeneratorMakeCommand extends ControllerMakeCommand { |
14 | 15 |
|
@@ -38,7 +39,31 @@ protected function buildClass($name) { |
38 | 39 | } |
39 | 40 |
|
40 | 41 | protected function buildModelReplacements(array $replace) { |
41 | | - $replacements = parent::buildModelReplacements($replace); |
| 42 | + $modelClass = $this->parseModel($this->option('model')); |
| 43 | + |
| 44 | + try { |
| 45 | + if (! class_exists($modelClass)) { |
| 46 | + if ($this->confirm("A {$modelClass} model does not exist. Do you want to generate it?", true)) { |
| 47 | + $this->call('make:model', ['name' => $modelClass]); |
| 48 | + } |
| 49 | + } |
| 50 | + } catch (Exception $exception) { |
| 51 | + if ($this->confirm("A {$modelClass} model does not exist. Do you want to generate it?", true)) { |
| 52 | + $this->call('make:model', ['name' => $modelClass]); |
| 53 | + } |
| 54 | + } |
| 55 | + |
| 56 | + $replacements = array_merge($replace, [ |
| 57 | + 'DummyFullModelClass' => $modelClass, |
| 58 | + '{{ namespacedModel }}' => $modelClass, |
| 59 | + '{{namespacedModel}}' => $modelClass, |
| 60 | + 'DummyModelClass' => class_basename($modelClass), |
| 61 | + '{{ model }}' => class_basename($modelClass), |
| 62 | + '{{model}}' => class_basename($modelClass), |
| 63 | + 'DummyModelVariable' => lcfirst(class_basename($modelClass)), |
| 64 | + '{{ modelVariable }}' => lcfirst(class_basename($modelClass)), |
| 65 | + '{{modelVariable}}' => lcfirst(class_basename($modelClass)), |
| 66 | + ]); |
42 | 67 |
|
43 | 68 | return [ |
44 | 69 | '{{ modelPluralVariable }}' => Str::plural(lcfirst(class_basename($this->option('model')))), |
@@ -175,7 +200,7 @@ private function modelHasSchemaAndGuarded($model) |
175 | 200 | private function isConnectedToDatabase() { |
176 | 201 | try { |
177 | 202 | DB::connection()->getPdo(); |
178 | | - } catch (\Exception $e) { |
| 203 | + } catch (Exception $e) { |
179 | 204 | return false; |
180 | 205 | } |
181 | 206 | } |
|
0 commit comments