本文转载自丢哥博客,原文地址:https://www.blog8090.com/laravel-helper/
Laravel 的一些辅助函数其实有很多方法是很实用的,很多人也用了一部分,而往往很多人确把其他的小方法忽视了,下面,丢丢哥给大家一一列举以下。
一、表单类
1.csrf token 表单
{{ csrf_token() }}
<p>
这样就可以直接获取 Laravel 自身维护的 csrf_token,比如通常是这样用的
</p><input name="_token" value="{{ csrf_token() }}" type="hidden" />
<p>
更简便的方法
</p>{!! csrf_field() !!}
<p>
这样就会直接在 html 输出类似下面的内容了
</p><input name="_token" value="5A0CQ8OHQylQFdM1UQ8pjJyMuN8YP5erC6VaiS89" type="hidden" />
<p>
2.生成 method 表单
</p>
<p>
在使用 resource 路由的时候,有一些 method 浏览器原生不能支持的,比如 DELETE,PATCH PUT 等,这时候就可以使用一下代码来生成 method 表单,模拟这些请求:
</p> {{ method_field('DELETE') }}
<p>
生成的 html :
</p><input type="hidden" name="_method" value="DELETE">
<h3>
二、数组类型
</h3>
<p>
如果指定的键不存在于该数组,<code>array_add</code> 函数便会将指定的键值对加到数组中:
</p>$array = array_add(['name' => 'Desk'], 'price', 100); // ['name' => 'Desk', 'price' => 100]
<p>
<code>array_collapse</code> 函数将数组的每一个数组折成单个数组:
</p>$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
<p>
<code>array_divide</code> 函数返回两个数组,一个包含原本数组的键,另一个包含原本数组的值:
</p>list($keys, $values) = array_divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']
<p>
<code>head</code>函数返回指定数组的第一个元素:
</p>$array = [100, 200, 300];
$first = head($array); // 100
<p>
<code>last</code> 函数返回指定数组的最后一个元素:
</p>$array = [100, 200, 300];
$last = last($array); // 300
<h3>
字符串类型
</h3>
<p>
<code>e</code>函数对指定字符串运行 <code>htmlentities</code>(防注入处理):
</p>echo e('<html>foo</html>');
// <html>foo</html>
<p>
<code>str_limit</code> 函数限制字符串的字符数量。该函数接受一个字符串作为第一个参数,以及最大字符数量作为第二参数(支持中文截取 不会出现乱码的情况):
</p>
<p>
$value = str_limit('The PHP framework for web artisans.', 7);
</p>
<p>
// The PHP...
</p>
<p>
str_contains 函数判断指定字符串是否包含指定内容:(可以做一个异步的字符串过滤器):
</p>$value = str_contains('This is my name', 'my'); // true
<p>
<code>str_random</code> 函数生成指定长度的随机字符串(实用场景也挺多):
</p>$string = str_random(64);
<p>
<code>trans</code>函数根据你的 本地化文件 翻译指定的语句(多语言和表单验证):
</p>echo trans('validation.required'):
<h3>
三、其他
</h3>
<p>
<code>back()</code> 函数生成一个重定向响应让用户回到之前的位置:
</p>return back()->withErrors('this value is request');
<p>
<code>config</code> 获取设置选项的设置值。设置值可通过「点」式语法读取,其中包含要访问的文件名以及选项名称。可传递一默认值在找不到指定的设置选项时返回该数值:
</p>$value = config('app.timezone'); $value = config('app.timezone', $default);
<p>
<code>config</code> 辅助函数也可以在运行期间,根据指定的键值对指定设置值:
</p>config(['app.debug' => true]);
<p>
<code>dd</code> 函数输出指定变量并结束脚本运行(这样相信用的多得一笔了):
</p>dd($data);
<p>
<code>env</code> 函数获取环境变量值或返回默认值:
</p>$env = env('APP_ENV'); // 当变量不存在时返回一个默认值... $env = env('APP_ENV', 'production');
<p>
<code>redirect</code> 函数返回重定向器实例以进行 重定向:
</p>return redirect('/login');
<p>
<code>response</code> 函数创建一个 响应 实例或获取一个响应工厂<code>(response factory)</code>实例:
</p>return response('Hello World', 200, $headers); return response()->json(['foo' => 'bar'], 200, $headers);
<p>
<code>session</code> 函数可用于获取或设置单个 <code>session</code> 内容:
</p>$value = session('key');
<p>
你可以通过传递键值对给该函数进行内容设置:
</p>session(['chairs' => 7, 'instruments' => 3]);
<p>
该函数在没有传递参数时,将返回 <code>session</code> 实例:
</p>$value = session()->get('key');
session()->put('key', $value);
<p>
<code>view</code> 函数获取 视图 实例:
</p>return view('auth.login');