zoukankan      html  css  js  c++  java
  • laravel之null替换空字符串中间件

    在laravel写接口的时候免不了数据库中保存null,可用诸如设置ORM的访问器或以下方法处理

    $goods->name?$goods->name:'';

    其实可以利用路由中间件,在需要的地方引入中间件即可

    中间件

    class ReplaceNullMiddleware
    {
        public function handle($request, Closure $next)
        {
            $response = $next($request);
            $data = json_decode($response->getContent(), true);
            if(isset($data['data'])){
                $newData = _unsetNull($data['data']);
                $data['data'] = $newData;
                return $response->setContent(json_encode($data));
            }
            return $response;
        }
    }

    再Kernel.php引入路由中间件。使用方法

    Route::post('/employeeList', 'ComController@employeeList')->middleware('replaceNull');
    //递归方式把数组或字符串 null转换为空''字符串
    function _unsetNull($arr){
        if($arr !== null){
            if(is_array($arr)){
                if(!empty($arr)){
                    foreach($arr as $key => $value){
                        if($value === null){
                            $arr[$key] = '';
                        }else{
                            $arr[$key] = _unsetNull($value);      //递归再去执行
                        }
                    }
                }
            }else{
                if($arr === null){ $arr = ''; }         //注意三个等号
            }
        }else{ $arr = ''; }
        return $arr;
    }
  • 相关阅读:
    CF786E ALT
    CF704D Captain America
    [NOI2016]循环之美
    「PKUWC2018」猎人杀
    [HNOI2019]JOJO
    博客已转移
    $20200203$的数学作业
    20200202的数学作业
    NOIp 2016 选课 (DP)
    Luogu P2574 XOR的艺术 (线段树)
  • 原文地址:https://www.cnblogs.com/kkform/p/9236023.html
Copyright © 2011-2022 走看看