Laravel: изображение не загружено - PullRequest
0 голосов
/ 02 мая 2018

У меня есть четыре поля изображения в моей форме для различного использования. Когда я пытаюсь загрузить изображения в два поля image_one и image_two, иногда загружается image_one, а иногда только image_two

Код моего контроллера:

if(Input::file('image_one'))
{
    $image_one = $post->storePostPicture($request->file('image_one'));

    if($image_one !== false) {
        $post->image_one = $image_one;
        $post->save();
    }
}


if(Input::file('image_two'))
{
    $image_two = $post->storePostPicture($request->file('image_two'));
    if($image_two !== false) {
        $post->image_two = $image_two;
        $post->save();
    }
}   

И моя storePostPicture функция в модели:

public function storePostPicture($image) {
    if($image instanceof \Illuminate\Http\UploadedFile && $image->isValid() && $image->isReadable()) {
        $filePath = 'public/images/user' . DIRECTORY_SEPARATOR . 'post';
        if(!File::exists(storage_path('app' . DIRECTORY_SEPARATOR . $filePath))) {
            File::makeDirectory(storage_path('app' . DIRECTORY_SEPARATOR . $filePath), 0755, true);
        }
        $imageName = sha1(time().time()) . ".". $image->getClientOriginalExtension();
        if($image->storeAs($filePath, $imageName) !== false) {
            $path = "/storage/images/user/post/";
            return $path . DIRECTORY_SEPARATOR . $imageName;
        }
    }

    return false;
}

Что я делаю не так?

1 Ответ

0 голосов
/ 02 мая 2018

В таблице миграции убедитесь, что все поля изображения обнуляются:

$table->string('image_one')->nullable();
$table->string('image_two')->nullable();
...

Кроме того, сохраните вашу почтовую модель после сбора всех данных.

if(Input::file('image_one'))
{
    $image_one = $post->storePostPicture($request->file('image_one'));

    if($image_one !== false) {
        $post->image_one = $image_one;
    }
}


if(Input::file('image_two'))
{
    $image_two = $post->storePostPicture($request->file('image_two'));
    if($image_two !== false) {
        $post->image_two = $image_two;
    }
}  

$post->save(); //saving the post model here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...