Проверенное и загруженное изображение неверное имя сохранено в MySQL в Laravel 6 - PullRequest
0 голосов
/ 16 января 2020

Проверка текста и фотографии происходит в StorePost FormRequest.

public function rules()
    {
        return [
            'name' => 'required',
            'exerpt => 'required',
            'photo' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ];
    }

Затем часть контроллера:

public function store( StorePost $request )
    {
        $imageName = time().'.'.$request->photo->extension();  
        $request->photo->move(public_path('post-images'), $imageName);

        // may modify image name here but it's not elegant
        //$data = $request->all();
        //$data['photo'] = $imageName;

        Post::create( $request->all() );
    }

Изображение сохраняется в MySQL как /private/var/folders/zr/y1drl_rs0sl75rxvgkx8ntzm0000gn/T/phpUJKeEG. Как я могу установить его имя до того, как запрос попадет в контроллер?

Я не хотел бы делать это, например, здесь (закомментированные строки).

1 Ответ

0 голосов
/ 16 января 2020

Вы можете использовать

$imageName = time().'_'.$request->photo->extension();  
$request->photo->storeAs('public/post-images',$imageName);

$post = new Post;
//...
$post->photo = $imageName;
//...
$post->save();
...