Php 如何创建自定义排序并保存它
我在新闻模型中有order\u by栏目。我有一些顺序,比如1,2,3等等, 现在我正在尝试用户拖放新闻,它在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
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]);
}
}