Laravel增刪改查公用方法

1.在Controller文件夾下創(chuàng)建GetwayController.php文件(可自定義controller下任意位置及文件名)

<?php

namespace App\Http\Controllers\Home;

use App\Http\Controllers\Controller;
use App\Models\Processdata\Insert;  
use App\Models\Processdata\Select;  
use App\Models\Processdata\Update;
use Illuminate\Support\Facades\Auth;

class GetwayController extends Controller
{
    public static function forway($data,$way)
    {
        $select = new Select();
        $insert = new Insert();
        $update = new Update();
        switch ($way) {
            case 'GET' :
                return $select->selects($data);  //查詢方式
                break;
            case 'POST' :
                return $insert->inserts($data);  //新建
                break;
            case 'DELETE' :
                return $update->deleteds($data);  //刪除
                break;
            case 'PATCH' :
                return $update->updateds($data);  //修改
                break;
            default:
                return $select->selects($data);
                break;
        }
    }
}

2.在App\Models\Processdata文件夾下創(chuàng)建一下文件
Insert.php

<?php

namespace App\Models\Processdata;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;


class Insert extends Model
{
  public function insertor($data){
      $table = $data['table'];
      $data['created_at'] = date('Y-m-d H:i:s');
      $data['updated_at'] = date('Y-m-d H:i:s');
      $unset = ['table','relations','key_words','_token'];
      foreach($unset as $k){
          unset($data[$k]);
      }
     $result = DB::table($table)->insert($data);

      return response()->json(['code'=>200,'message'=>'添加成功','data'=>'','success'=>true]);
  }

  public function inserts($data){
      $table = $data['table'];
      $data['created_at'] = date('Y-m-d H:i:s');
      $data['updated_at'] = date('Y-m-d H:i:s');
      $unset = ['table','relations','key_words','_token','copy','id'];
      foreach($unset as $k){
          unset($data[$k]);
      }
//        dd($data);
      $result = DB::table($table)->insert($data);
//        dd($result);
      if(!$result){
          return '添加失敗';
      }
      return '添加成功';
  }

}

Select.php

<?php

namespace App\Models\Processdata;

use App\Models\Morder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class Select  extends Model
{

    public function selects($data){
        $arr = ['datetime','order','table','current','_token','field'];
        foreach($arr as $key=>$vo){
            if(array_key_exists($vo,$data)){
                $info[$vo] = $data[$vo];
                unset($data[$vo]);
            }
        }
        $data = array_filter($data);
        $field = null;
        if(!empty($info['datetime'])){
            $datetime = explode(",",$info['datetime']);
        }
        if(!empty($info['order'])){
            $order = explode(",",$info['order']);
        }
        $where = [];
        if(isset($data['like'])){
            $where[] = $data['like'];
            unset($data['like']);
        }
        if(!empty($info['field'])){
            $field = explode(",",$info['field']);//轉(zhuǎn)換成數(shù)組
        }
        foreach ($data as $k=>$v){
            count($data) != 0 && $where[] = [$k,$v];
        }
        $result = DB::table($info['table'])->where($where)->orderBy('id','desc')->get($field);
        if(!empty($order)){
            $result = DB::table($info['table'])->where($where)->orderBy($order[0],$order[1])->orderBy('id','desc')->get($field);
        }
        if(!empty($datetime[1]) && !empty($datetime[2])){
            $datetime[1] = $datetime[1]." 00:00:00";
            $datetime[2] = $datetime[2]." 23:59:59";
            $result = DB::table($info['table'])->where($where)->whereBetween($datetime[0],[$datetime[1],$datetime[2]])->orderBy('id','desc')->get($field);
            if(!empty($order)){
                $result = DB::table($info['table'])->where($where)->whereBetween($datetime[0],array($datetime[1],$datetime[2]))->orderBy($order[0],$order[1])->orderBy('id','desc')->get($field);
            }
        }
        return $result;
    }

}

Update.php

<?php

namespace App\Models\Processdata;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
class Update extends Model
{

    public function updateds($data){
        if(!empty($data['id'])){
            $info['id'] = intval($data['id']);
        }
        if(!empty($data['select'])){
            $info['type'] = $data['select'];
        }
        $delete = !empty($data['delete'])?$data['delete']:false;

//        $info['id'] = intval($data['id']);
        $table = $data['table'];
        $data['updated_at'] = date('Y-m-d H:i:s');
        $unset = ['table','id','_method','relations','key_words','_token','select','delete'];
        foreach($unset as $k){
            unset($data[$k]);
        }
        $result = DB::table($table)->where($info)->update($data);
        if($result){
            $msg = '修改成功';
        }else{
            $msg = '修改失敗';
        }
        if(!empty($delete)){
            if($result){
                $msg = '已刪除';
            }else{
                $msg = '刪除失敗';
            }
        }
        return $msg;
    }

    public function deleteds($data){
        $table = $data['table'];
        $unset = ['table','_method','relations','key_words','_token','delete','copy'];
        foreach($unset as $k){
            unset($data[$k]);
        }
        $result = DB::table($table)->where($data)->delete();
//        dd($result);
        if($result == 0){
            return '刪除失敗';
        }
        return '已刪除';
    }

}

3.調(diào)用
引入

use App\Http\Controllers\Home\GetwayController;

使用

$data = $request->all();
$data['table'] = 'pro_classify';
$result=GetwayController::forway($data,'GET');
$result=$result[0];


if(!empty($request->all())) {
            $data = $request->all();
            $data['table'] = 'pro_classify';

            //執(zhí)行添加
            if(empty($data['id'])){
                $result=GetwayController::forway($data,'POST');

                return response()->json(['message'=>'添加成功','error'=>0,'data'=>$result]);
            }else{
                // dd($data);
                if($data['pid'] != '0'){
                    if(!empty($data['hide'])){
                        $data['hide'] = '2';
                    }else{
                        $data['hide'] = '1';
                    }
                }
                // dd($data);
                //執(zhí)行修改
                $result=GetwayController::forway($data,'PATCH');
                return response()->json(['message'=>'修改成功','error'=>0,'data'=>$result]);
            }

        }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末解虱,一起剝皮案震驚了整個(gè)濱河市款筑,隨后出現(xiàn)的幾起案子间景,更是在濱河造成了極大的恐慌鉴分,老刑警劉巖绊汹,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肆饶,居然都是意外死亡秃嗜,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門澎羞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)术陶,“玉大人,你說(shuō)我怎么就攤上這事煤痕∥喙” “怎么了接谨?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)塘匣。 經(jīng)常有香客問(wèn)我脓豪,道長(zhǎng),這世上最難降的妖魔是什么忌卤? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任扫夜,我火速辦了婚禮,結(jié)果婚禮上驰徊,老公的妹妹穿的比我還像新娘笤闯。我一直安慰自己,他們只是感情好棍厂,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布颗味。 她就那樣靜靜地躺著,像睡著了一般牺弹。 火紅的嫁衣襯著肌膚如雪浦马。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天张漂,我揣著相機(jī)與錄音晶默,去河邊找鬼。 笑死航攒,一個(gè)胖子當(dāng)著我的面吹牛磺陡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漠畜,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼仅政,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了盆驹?” 一聲冷哼從身側(cè)響起圆丹,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躯喇,沒(méi)想到半個(gè)月后辫封,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡廉丽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年倦微,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片正压。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡欣福,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出焦履,到底是詐尸還是另有隱情拓劝,我是刑警寧澤雏逾,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站郑临,受9級(jí)特大地震影響栖博,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厢洞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一仇让、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧躺翻,春花似錦丧叽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至省店,卻和暖如春嚣崭,著一層夾襖步出監(jiān)牢的瞬間笨触,已是汗流浹背懦傍。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留芦劣,地道東北人粗俱。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像虚吟,于是被迫代替她去往敵國(guó)和親寸认。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容