Увеличивайте номер заказа на 1 в контроллере, когда новый элемент загружается с использованием Laravel - PullRequest
0 голосов
/ 18 июня 2020

Я хочу увеличить номер заказа на 1 при загрузке нового товара. У меня есть загрузчик изображений, который загружает несколько изображений, в основном я хочу, чтобы порядок увеличивался, если загружается новое изображение, но сохраняйте номер порядка существующих изображений одинаковым. Я попытался использовать метод increment(), но когда я попробовал это, он увеличил существующий порядковый номер изображений, который мне не нужен, но затем новый порядковый номер изображения дал, например, странное число 25. Я немного не уверен, почему это происходит, или я упустил что-то важное, спасибо.

Этот код установлен в функции сохранения в контроллере.

if($request->hasfile('images'))
{
    foreach($request->file('images') as $image)
    {
        $filenameWithExt = $image->getClientOriginalName();

        $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);

        $extension = $image->getClientOriginalExtension();

        $fileNameToStore = $filename.'_'.time().'.'.$extension;

        $path = $image->storeAs('public/image', $fileNameToStore);

        $image = new Images;
        $increment = Images::increment('order', 1);
        $image->order = $increment;
        $image->images = $fileNameToStore;
        $image->post_id = $post->id;
        $image->save();
    }
} else {
    $fileNameToStore = null;
}

1 Ответ

0 голосов
/ 18 июня 2020

Я бы сделал max (), чтобы получить последнее значение приращения:

$max = Images::where('post_id', $post->id)->max('order');
$order = $max+1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...