Php 如何创建自定义排序并保存它

Php 如何创建自定义排序并保存它,php,laravel,Php,Laravel,我在新闻模型中有order\u by栏目。我有一些顺序,比如1,2,3等等, 现在我正在尝试用户拖放新闻,它在news\u info表中按顺序按列更新。 排序应该像我把第五条新闻移到第一条,然后第一条移到第二条,第二条移到第三条 <?php namespace Modules\Newsletter\Entities; use Illuminate\Database\Eloquent\Model; /** * This is for storing news * Class New

我在新闻模型中有order\u by栏目。我有一些顺序,比如1,2,3等等, 现在我正在尝试用户拖放新闻,它在
news\u info
表中按顺序按列更新。 排序应该像我把第五条新闻移到第一条,然后第一条移到第二条,第二条移到第三条

<?php

namespace Modules\Newsletter\Entities;
use Illuminate\Database\Eloquent\Model;

/**
 * This is for storing  news
 * Class News
 * @package Modules\Newsletter\Entities
 */
class News extends Model {

    use WorkflowTrait;
    protected $table = 'news_info';
    protected $fillable = [
        'title', 'header', 'description', 'status', 'created_by', 'media_url', 'media_thumbnail', 'media_type','order_by'
    ];
}

更新所有表格,以将
订单单位增量
1,其中
订单单位
字段等于或高于您在新车型上设置的字段,并且
订单单位
小于其当前值

大概

$news=news::find(1);//无论您正在更新哪个型号
$newOrderBy=1;//按值排序的新顺序
$oldOrderBy=$news->OrderBy;
//更新应递增1的行
新闻::where('order_by','>=',$newOrderBy)

->在哪里('order_by','你能让我理解更新所有表格使order_增加1是什么意思吗。@RaviPratapSingh Qirel的意思是,当一篇新闻文章被重新排序时,你将新的
order_by
保存在
news_info
表格中,然后将
order_
值增加
news_
r通过
1
有效地向下移动具有更大
order\u by
值的ecords。
public function customSorting($old,$new){
    for ($i=$old;$i<$new;$i++){
       $inc = $i + 1;
       $newOder = News::where('order_by',$i)->first();
       $result =  $newOder->update(['order_by' =>$inc]);
    }
}