提问者:小点点

当使用Laravel上传新项目时,在控制器中将订单号递增1


我想增加1的订单号时,一个新的项目上传。 我有一个图像上传程序,上传多个图像,基本上我想要增加的顺序,如果一个新的图像上传,但保持现有的图像订单号相同。 我尝试使用increment()方法,但是当我尝试使用这个方法时,它增加了现有的图像顺序号,这是我不想要的,但是新的图像顺序号产生了一个奇怪的数字,例如25。 我有点不确定为什么会这样,还是我错过了一些重要的东西,谢谢。

此代码在控制器中的store函数中设置。

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个答案

匿名用户

我将执行max()以获得最新的增量值:

$max = Images::where('post_id', $post->id)->max('order');
$order = $max+1;