Skip to content

Commit 2ac96f6

Browse files
committed
Fix module name pluralization for the Controller and Vue page.
1 parent a733cd4 commit 2ac96f6

File tree

4 files changed

+24
-16
lines changed

4 files changed

+24
-16
lines changed

src/Console/MakeControllerCommand.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,12 @@ private function createModuleController(): void
3737
{
3838
$stub = file_get_contents(__DIR__.'/../../stubs/module-stub/modules/Http/Controllers/ModuleController.stub');
3939

40+
$resourceNameCamelCase = Str::camel($this->resourceName);
41+
4042
$stub = str_replace('{{ ModuleName }}', $this->moduleName, $stub);
4143
$stub = str_replace('{{ ResourceName }}', $this->resourceName, $stub);
42-
$stub = str_replace('{{ resourceName }}', Str::camel($this->resourceName), $stub);
44+
$stub = str_replace('{{ resourceName }}', $resourceNameCamelCase, $stub);
45+
$stub = str_replace('{{ resourceNameCamelPlural }}', Str::plural($resourceNameCamelCase), $stub);
4346

4447
$path = base_path("modules/{$this->moduleName}/Http/Controllers/{$this->resourceName}Controller.php");
4548

src/Console/MakePageCommand.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,13 @@ private function createIndexPage(): void
3535
{
3636
$stub = file_get_contents(__DIR__.'/../../stubs/page-stub/Index.stub');
3737

38-
$stub = str_replace('{{ ResourceName }}', $this->resourceName, $stub);
39-
$stub = str_replace('{{ resourceName }}', Str::camel($this->resourceName), $stub);
38+
$resourceNamePascalCase = $this->resourceName;
39+
$resourceNameCamelCase = Str::camel($this->resourceName);
40+
41+
$stub = str_replace('{{ ResourceName }}', $resourceNamePascalCase, $stub);
42+
$stub = str_replace('{{ ResourceNamePascalPlural }}', Str::plural($resourceNamePascalCase), $stub);
43+
$stub = str_replace('{{ resourceName }}', $resourceNameCamelCase, $stub);
44+
$stub = str_replace('{{ resourceNameCamelPlural }}', Str::plural($resourceNameCamelCase), $stub);
4045

4146
(new Filesystem)->ensureDirectoryExists(resource_path("js/Pages/{$this->moduleName}/"));
4247

stubs/module-stub/modules/Http/Controllers/ModuleController.stub

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class {{ ResourceName }}Controller extends BackendController
1212
{
1313
public function index(): Response
1414
{
15-
${{ resourceName }}s = {{ ResourceName }}::orderBy('name')
15+
${{ resourceNameCamelPlural }} = {{ ResourceName }}::orderBy('name')
1616
->search(request('searchContext'), request('searchTerm'))
1717
->paginate(request('rowsPerPage', 10))
1818
->withQueryString()
@@ -23,7 +23,7 @@ class {{ ResourceName }}Controller extends BackendController
2323
]);
2424

2525
return inertia('{{ ModuleName }}/{{ ResourceName }}Index', [
26-
'{{ resourceName }}s' => ${{ resourceName }}s
26+
'{{ resourceNameCamelPlural }}' => ${{ resourceNameCamelPlural }}
2727
]);
2828
}
2929

stubs/page-stub/Index.stub

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@
1313
</AppSectionHeader>
1414

1515
<AppDataSearch
16-
v-if="{{ resourceName }}s.data.length || route().params.searchTerm"
16+
v-if="{{ resourceNameCamelPlural }}.data.length || route().params.searchTerm"
1717
:url="route('{{ resourceName }}.index')"
1818
fields-to-search="id"
1919
></AppDataSearch>
2020

21-
<AppDataTable v-if="{{ resourceName }}s.data.length" :headers="headers">
21+
<AppDataTable v-if="{{ resourceNameCamelPlural }}.data.length" :headers="headers">
2222
<template #TableBody>
2323
<tbody>
2424
<AppDataTableRow
25-
v-for="(item, index) in {{ resourceName }}s.data"
25+
v-for="(item, index) in {{ resourceNameCamelPlural }}.data"
2626
:key="item.id"
2727
>
2828
<AppDataTableData>
@@ -74,15 +74,15 @@
7474
</AppDataTable>
7575

7676
<AppPaginator
77-
:links="{{ resourceName }}s.links"
78-
:from="{{ resourceName }}s.from"
79-
:to="{{ resourceName }}s.to"
80-
:total="{{ resourceName }}s.total"
77+
:links="{{ resourceNameCamelPlural }}.links"
78+
:from="{{ resourceNameCamelPlural }}.from"
79+
:to="{{ resourceNameCamelPlural }}.to"
80+
:total="{{ resourceNameCamelPlural }}.total"
8181
class="mt-4 justify-center"
8282
></AppPaginator>
8383

84-
<AppAlert v-if="!{{ resourceName }}s.data.length" class="mt-4">
85-
No {{ resourceName }}s found.
84+
<AppAlert v-if="!{{ resourceNameCamelPlural }}.data.length" class="mt-4">
85+
No {{ resourceNameCamelPlural }} found.
8686
</AppAlert>
8787

8888
<AppConfirmDialog ref="confirmDialogRef"></AppConfirmDialog>
@@ -98,15 +98,15 @@ const { title } = useTitle('{{ ResourceName }}')
9898
const { can } = useAuthCan()
9999

100100
const props = defineProps({
101-
{{ resourceName }}s: {
101+
{{ resourceNameCamelPlural }}: {
102102
type: Object,
103103
default: () => {}
104104
}
105105
})
106106

107107
const breadCrumb = [
108108
{ label: 'Home', href: route('dashboard.index') },
109-
{ label: '{{ ResourceName }}s', last: true }
109+
{ label: '{{ ResourceNamePascalPlural }}', last: true }
110110
]
111111

112112
const headers = ['ID', 'Actions']

0 commit comments

Comments
 (0)