У меня есть команда UploadPhotoCommand
, которую я написал для загрузки фотографии в мое приложение. Команда не является самообслуживанием, поэтому я написал обработчик UploadPhotoCommandHandler
, чтобы пойти с ним.Laravel 5: Извлечь данные из отправленной команды
рассылает команду из моего контроллера, как это:
<?php
namespace App\Http\Controllers\Photos;
use App\Commands\Photos\UploadPhotoCommand;
use App\Http\Requests\Photos\UploadRequest;
class UploadController {
public function process(UploadRequest $request)
{
try
{
$this->dispatch(
new UploadPhotoCommand($request->file('photo'));
);
}
catch (\Exception $e)
{
\Log::error($e);
return response()->json(['errors' => 'Sorry, something went wrong, please try again later.']);
}
// I want to use the ID of the uploaded photo here
return response()->json(['success' => 'Photo uploaded successfully']);
}
}
В моем обработчике команды я управлять процессом загрузки фотографий, перемещая загруженное изображение, создавая миниатюры и т.д. и добавление записи в базу данных.
Моя проблема заключается в том, что я хотел бы получить идентификатор загруженной фотографии из этой команды и использовать ее. Мое намерение - вернуть больше информации в ответ на загруженную фотографию, в частности, я хочу вернуть URL-адрес с помощью функции route
, передавая идентификатор фотографии.
Любые идеи о том, как достичь этого?
Спасибо за ваш ответ. Моя «UploadPhotoCommand» - это DTO, и у меня есть основная часть моего кода в «UploadPhotoCommandHandler». Мой обработчик команд также выигрывает от инъекции зависимостей из контейнера IoC в конструкторе, и метод 'handle' - это то, где вся логика. Взятие вашего предлагаемого подхода означало бы принести в жертву целый ряд преимуществ, которые предлагает Laravel, чего я действительно не хочу делать. – Jonathon