12
12
use Laravel \Nova \Resource ;
13
13
use Laravel \Nova \Rules \Relatable ;
14
14
use Maatwebsite \Excel \Concerns \ToModel as ModelImporter ;
15
+ use SimonHamp \LaravelNovaCsvImport \Http \Requests \ImportNovaRequest ;
15
16
16
17
class ImportController
17
18
{
@@ -26,7 +27,7 @@ public function __construct(ModelImporter $importer, Filesystem $filesystem)
26
27
$ this ->filesystem = $ filesystem ;
27
28
}
28
29
29
- public function configure (NovaRequest $ request , string $ file ): Response
30
+ public function configure (ImportNovaRequest $ request , string $ file ): Response
30
31
{
31
32
$ file_name = pathinfo ($ file , PATHINFO_FILENAME );
32
33
@@ -125,7 +126,7 @@ public function preview(NovaRequest $request, string $file): Response
125
126
);
126
127
}
127
128
128
- public function import (NovaRequest $ request )
129
+ public function import (ImportNovaRequest $ request )
129
130
{
130
131
$ file = $ request ->input ('file ' );
131
132
@@ -138,6 +139,8 @@ public function import(NovaRequest $request)
138
139
$ resource_name = $ config ['resource ' ];
139
140
140
141
$ resource = Nova::resourceInstanceForKey ($ resource_name );
142
+
143
+ $ request ->setImportResource (get_class ($ resource ));
141
144
$ rules = $ this ->extractValidationRules ($ resource , $ request )->toArray ();
142
145
$ model_class = $ resource ->resource ::class;
143
146
@@ -193,7 +196,7 @@ public function review(NovaRequest $request, string $file): Response
193
196
);
194
197
}
195
198
196
- protected function getAvailableFieldsForImport (string $ resource , NovaRequest $ request ): array
199
+ protected function getAvailableFieldsForImport (string $ resource , ImportNovaRequest $ request ): array
197
200
{
198
201
$ novaResource = new $ resource (new $ resource ::$ model );
199
202
$ fieldsCollection = collect ($ novaResource ->creationFields ($ request ));
@@ -205,6 +208,8 @@ protected function getAvailableFieldsForImport(string $resource, NovaRequest $re
205
208
}
206
209
207
210
$ fields = $ fieldsCollection ->map (function (Field $ field ) use ($ novaResource , $ request ) {
211
+ $ request ->setImportResource ($ novaResource );
212
+
208
213
return [
209
214
'name ' => $ field ->name ,
210
215
'attribute ' => $ field ->attribute ,
0 commit comments