HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/iphim.naniguide.com/common/Channels/ChannelContentOrderController.php
<?php

namespace Common\Channels;

use App\Models\Channel;
use Common\Core\BaseController;
use Illuminate\Support\Facades\DB;

class ChannelContentOrderController extends BaseController
{
    public function changeOrder(int $channelId)
    {
        $channel = Channel::findOrFail($channelId);

        $this->authorize('update', $channel);

        $data = request()->validate([
            'ids' => 'array|min:1',
            'ids.*' => 'int',
            'modelType' => 'required|string',
        ]);

        $queryPart = '';
        foreach ($data['ids'] as $order => $id) {
            $queryPart .= " when channelable_id=$id then $order";
        }

        DB::table('channelables')
            ->where('channel_id', $channel->id)
            ->whereIn('channelable_id', $data['ids'])
            ->where('channelable_type', $data['modelType'])
            ->update(['order' => DB::raw("(case $queryPart end)")]);

        return $this->success();
    }
}