zoukankan      html  css  js  c++  java
  • Laravel 实用的辅助函数小技巧--helper

    Laravel 实用的辅助函数小技巧--helper

    Laravel 的一些辅助函数其实有很多方法是很实用的,很多人也用了一部分,而往往很多人确把其他的小方法忽视了,下面,丢丢哥给大家一一列举以下。

    一、表单类

    1.csrf token 表单

    {{ csrf_token() }}
    

    这样就可以直接获取 Laravel 自身维护的 csrf_token,比如通常是这样用的

    <input name="_token" value="{{ csrf_token() }}" type="hidden" />  
    

    更简便的方法

    {!! csrf_field() !!}
    

    这样就会直接在 html 输出类似下面的内容了

    <input name="_token" value="5A0CQ8OHQylQFdM1UQ8pjJyMuN8YP5erC6VaiS89" type="hidden" />  
    

    2.生成 method 表单

    在使用 resource 路由的时候,有一些 method 浏览器原生不能支持的,比如 DELETE,PATCH PUT 等,这时候就可以使用一下代码来生成 method 表单,模拟这些请求:

     {{ method_field('DELETE') }}
    

    生成的 html :

    <input type="hidden" name="_method" value="DELETE">  
    

    二、数组类型

    如果指定的键不存在于该数组,array_add 函数便会将指定的键值对加到数组中:

    $array = array_add(['name' => 'Desk'], 'price', 100);
    
    // ['name' => 'Desk', 'price' => 100]
    

    array_collapse 函数将数组的每一个数组折成单个数组:

    $array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
    
    // [1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    array_divide 函数返回两个数组,一个包含原本数组的键,另一个包含原本数组的值:

    list($keys, $values) = array_divide(['name' => 'Desk']);
    
    // $keys: ['name']
    
    // $values: ['Desk']
    

    head函数返回指定数组的第一个元素:

    $array = [100, 200, 300];
    
    $first = head($array);
    
    // 100
    

    last 函数返回指定数组的最后一个元素:

    $array = [100, 200, 300];
    
    $last = last($array);
    
    // 300
    

    字符串类型

    e函数对指定字符串运行 htmlentities(防注入处理):

    echo e('<html>foo</html>');
    
    // &lt;html&gt;foo&lt;/html&gt;
    

    str_limit 函数限制字符串的字符数量。该函数接受一个字符串作为第一个参数,以及最大字符数量作为第二参数(支持中文截取 不会出现乱码的情况):

    $value = str_limit('The PHP framework for web artisans.', 7);

    // The PHP...

    str_contains 函数判断指定字符串是否包含指定内容:(可以做一个异步的字符串过滤器):

    $value = str_contains('This is my name', 'my');
    
    // true
    

    str_random 函数生成指定长度的随机字符串(实用场景也挺多):

    $string = str_random(64);
    

    trans函数根据你的 本地化文件 翻译指定的语句(多语言和表单验证):

    echo trans('validation.required'):  
    

    三、其他

    back() 函数生成一个重定向响应让用户回到之前的位置:

    return back()->withErrors('this value is request');  
    

    config 获取设置选项的设置值。设置值可通过「点」式语法读取,其中包含要访问的文件名以及选项名称。可传递一默认值在找不到指定的设置选项时返回该数值:

    $value = config('app.timezone');
    
    $value = config('app.timezone', $default);
    

    config 辅助函数也可以在运行期间,根据指定的键值对指定设置值:

    config(['app.debug' => true]);  
    

    dd 函数输出指定变量并结束脚本运行(这样相信用的多得一笔了):

    dd($data);  
    

    env 函数获取环境变量值或返回默认值:

    $env = env('APP_ENV');
    
    // 当变量不存在时返回一个默认值...
    $env = env('APP_ENV', 'production');
    

    redirect 函数返回重定向器实例以进行 重定向:

    return redirect('/login');  
    

    response 函数创建一个 响应 实例或获取一个响应工厂(response factory)实例:

    return response('Hello World', 200, $headers);
    
    return response()->json(['foo' => 'bar'], 200, $headers);  
    

    session 函数可用于获取或设置单个 session 内容:

    $value = session('key');
    

    你可以通过传递键值对给该函数进行内容设置:

    session(['chairs' => 7, 'instruments' => 3]);  
    

    该函数在没有传递参数时,将返回 session 实例:

    $value = session()->get('key');
    
    session()->put('key', $value);  
    

    view 函数获取 视图 实例:

    return view('auth.login');  
    

    对象转数组

    collect($obj)->toArray();  
    

    转换成json字串

    // $data 数组和对象都可以
    collect($data)->toJson();  
    

    `

    回调过滤集合,只有通过给定测试的数据项才会保留下来

    $arr = collect([1,2,3,4])->filter(function ($str){
                    return $str > 2;
            });
            dd($arr);
    // [3,4]
    

    将集合数据项的顺序颠倒

    $collection = collect([1, 2, 3, 4, 5]);
    $reversed = $collection->reverse();
    $reversed->all();
    // [5, 4, 3, 2, 1]
    

    个数

    $data = collect([1,2,3,4,5])->count();
    // 5
    

    迭代集合并对集合中每个数据项调用给定回调。集合中的数据项将会被替代成从回调中返回的值:

    $collection = collect([1, 2, 3, 4, 5]);
    
    $collection->transform(function ($item, $key) {
        return $item * 2;
    });
    
    $collection->all();
    // [2, 4, 6, 8, 10]
    

    集合的值相应的索引处合并给定数组的值

    $collection = collect(['Tom', 'Lark']);
    $zipped = $collection->zip(['170cm', '181cm']);
    $zipped->all();
    // [['Tom', '170cm'], ['Lark', '181cm']]
  • 相关阅读:
    Linux 02
    Linux 01
    React 函数式组件的 Ref 和子组件访问(useImperativeHandle)
    排序算法之 Java插入排序算法
    排序算法之 Java选择排序算法
    排序算法之 Java冒泡算法
    类加载的过程---验证和准备
    类加载的过程---加载
    mysql explain 查询处理的结果详解
    springboot整合分布式缓存hazelCast
  • 原文地址:https://www.cnblogs.com/jhcyzxx/p/10480060.html
Copyright © 2011-2022 走看看