Skip to content

Commit 985e828

Browse files
committed
Fix bugs and making compatible with laravel 9
1 parent 6097524 commit 985e828

File tree

2 files changed

+33
-8
lines changed

2 files changed

+33
-8
lines changed

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
],
1919
"require": {
2020
"php": "^7.1|^8.0",
21-
"laravel/framework": "5.*|6.*|7.*|8.*"
21+
"laravel/framework": "5.*|6.*|7.*|8.*|9.*"
2222
},
2323
"require-dev": {
2424
"orchestra/testbench": "^4.0"
@@ -45,4 +45,4 @@
4545
]
4646
}
4747
}
48-
}
48+
}

src/CrudGeneratorMakeCommand.php

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
namespace Mehradsadeghi\CrudGenerator;
44

5-
use Illuminate\Routing\Console\ControllerMakeCommand;
6-
use Illuminate\Support\Facades\File;
7-
use Illuminate\Support\Facades\Schema;
5+
use Exception;
86
use Illuminate\Support\Str;
97
use Illuminate\Support\Facades\DB;
10-
use Symfony\Component\Console\Input\InputArgument;
8+
use Illuminate\Support\Facades\File;
9+
use Illuminate\Support\Facades\Schema;
1110
use Symfony\Component\Console\Input\InputOption;
11+
use Symfony\Component\Console\Input\InputArgument;
12+
use Illuminate\Routing\Console\ControllerMakeCommand;
1213

1314
class CrudGeneratorMakeCommand extends ControllerMakeCommand {
1415

@@ -38,7 +39,31 @@ protected function buildClass($name) {
3839
}
3940

4041
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+
]);
4267

4368
return [
4469
'{{ modelPluralVariable }}' => Str::plural(lcfirst(class_basename($this->option('model')))),
@@ -175,7 +200,7 @@ private function modelHasSchemaAndGuarded($model)
175200
private function isConnectedToDatabase() {
176201
try {
177202
DB::connection()->getPdo();
178-
} catch (\Exception $e) {
203+
} catch (Exception $e) {
179204
return false;
180205
}
181206
}

0 commit comments

Comments
 (0)