码迷,mamicode.com
首页 > 其他好文 > 详细

laravel之null替换空字符串中间件

时间:2018-06-27 22:29:37      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:div   closure   UNC   转换   字符   需要   ons   递归   TE   

在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;
}

 

laravel之null替换空字符串中间件

标签:div   closure   UNC   转换   字符   需要   ons   递归   TE   

原文地址:https://www.cnblogs.com/kkform/p/9236023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!