Olá, estou com um problema ao armazenar o coverPath no banco de dados. A série é armazenada normalmente, porém, a coluna cover_path sempre está nula. No SeriesController faço os testes e o coverPath está correto, mas ao enviar pro EloquentSeriesRepository, ao testar com um dd($request->coverPath); o retorno é null. Não sei qual pode ser o problema, já que no controller está funcionando corretamente. Segue o código para analisarem
Controller
public function store(SeriesFormRequest $request)
{
$serie = $this->repository->add($request);
$fileType = $request->file('cover')->getMimeType();
//Este if valida se o formato de capa recebido é em .gif, .png e .jpeg
if($fileType === 'image/gif' || $fileType === 'image/png' || $fileType === 'image/jpeg'){
$coverPath = $request->file('cover')->store('series_cover', 'public');
$request->coverPath = $coverPath;
}
//Neste DD o coverPath está com os valores corretos
//mas no EloquentSeriesRepository ele é recebido como NULL
//dd($request->coverPath);
SeriesCreatedEvent::dispatch(
$serie->nome,
$serie->id,
$request->seasonsQty,
$request->episodesPerSeason,
);
return to_route('series.index')
->with('mensagem.sucesso', "Série '{$serie->nome}' adicionada com sucesso");
}
EloquentSeriesRepository
public function add (SeriesFormRequest $request): Series
{
//Neste dd o retorno é null
//dd($request->coverPath);
return DB::transaction(function () use ($request) {
$serie = Series::create([
'nome' => $request->nome,
'cover_path' => $request->coverPath,
]);
$seasons = [];
for ($i = 1; $i <= $request->seasonsQty; $i++) {
$seasons[] = [
'series_id' => $serie->id,
'number' => $i,
];
}
Season::insert($seasons);
$episodes = [];
foreach ($serie->seasons as $season) {
for ($j = 1; $j <= $request->episodesPerSeason; $j++) {
$episodes[] = [
'season_id' => $season->id,
'number' => $j
];
}
}
Episode::insert($episodes);
return $serie;
});
}
Aproveitando o problema que encontrei, o desafio de validar no Controller se o arquivo do upload é válido está correto, ou ainda não seria a forma ideal de verificar?