Laravel推荐使用的十个辅助函数


Posted in PHP onMay 10, 2019

前言

Laravel 包含各种全局辅助函数。 laravel 中包含大量辅助函数,您可以使用它们来简化开发工作流程。 在这里,我将编写 10 个最好的 laravel 帮助函数,用于使我的开发更容易。 您必须考虑在必要时使用它们。

您还可以查看所有的官方文档 laravel helper functions.

array_dot()

array_dot() array_dot () 辅助函数允许你将多维数组转换为使用点符号的一维数组。

$array = [
 'user' => ['username' => 'something'],
 'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
];

$dot_array = array_dot($array);

// [user.username] => something, [app.creator.name] => someone, [app.created] => today

array_get()

array_get() 函数使用点符号从多维数组中检索值。

$array = [
 'user' => ['username' => 'something'],
 'app' => ['creator' => ['name' => 'someone'], 'created' => 'today']
];

$name = array_get($array, 'app.creator.name');

// someone

如果 key 不存在,array_get() 函数还接受可选的第三个参数作为默认值。

$name = array_get($array, 'app.created.name', 'anonymous');

// anonymous

public_path()

public_path() 返回 Laravel 应用程序中公共目录的完全限定的绝对路径。 你还可以将路径传递到公共目录中的文件或目录以获取该资源的绝对路径。 它将简单地将 public_path() 添加到你的参数中。

$public_path = public_path();

$path = public_path('js/app.js');

Str::orderedUuid()

Str::orderedUuid() 函数首先生成一个时间戳 uuid。 这个 uuid 可以存储在索引数据库列中。 这些 uuid 是基于时间戳创建的,因此它们会保留你的内容索引。 在 Laravel 5.6 中使用它时,会引发 Ramsey\Uuid\Exception\UnsatisfiedDependencyException。 要解决此问题,只需运行以下命令即可使用 moontoast/math 包::

composer require "moontoast/math"
use Illuminate\Support\Str;

return (string) Str::orderByUuid()

// A timestamp first uuid

str_plural()

str_plural 函数将字符串转换为复数形式。该功能只支持英文。

echo str_plural('bank');

// banks

echo str_plural('developer');

// developers

route()

route() 函数为指定的路由生成路由 URL。

$url = route('login');

如果路由接受参数,你可以简单地将它们作为第二个参数传递给一个数组。

$url = route('products', ['id' => 1]);

如果你想产生一个相对的 URL 而不是一个绝对的 URL,你可以传递 false 作为第三个参数。

$url = route('products', ['id' => 1], false);

tap()

tap() 函数接受两个参数:一个值和一个闭包。该值将被传递给闭包,然后该值将被返回。闭包返回值无关紧要。

$user = App\User::find(1);

return tap($user, function($user) {
 $user->update([
  'name' => 'Random'
 ]);
});

它不会返回布尔值,而是返回 User Model 。

如果你没有传递闭包,你也可以使用 User Model 的任何方法。 无论实际返回的方法如何,返回值都将始终为值。 在下面的例子中,它将返回 User Model 而不是布尔值。 update 方法返回布尔值,但由于用了 tap ,所以它将返回 User Model。

$user = App\User::find(1);

return tap($user)->update([
  'name' => 'SomeName'
]);

dump()

dump() 函数会 dump 给定的变量,同时也支持同时传入多个变量。这对调试非常有用。

dump($var1);
dump($var1, $var2, $var3);

str_slug()

str_slug() 函数将给定的字符串生成一个 URL 友好的 slug。 你可以使用此功能为帖子或产品标题创建一个 slug。

$slug = str_slug('Helpers in Laravel', '-');

// helpers-in-laravel

optional()

optional() 函数接受一个参数,你可以调用参数的方法或访问属性。 如果传递的对象为 null,则方法和属性将返回 null,而不是导致错误或抛出异常。

$user = User::find(1);

return optional($user)->name;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
php Xdebug的安装与使用详解
Jun 20 PHP
PHP图片上传代码
Nov 04 PHP
二进制交叉权限微型php类分享
Feb 07 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 PHP
变量在 PHP7 内部的实现(二)
Dec 21 PHP
CI配置多数据库访问的方法
Mar 28 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP遍历数组的6种方式总结
Nov 17 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 #PHP
PHP 7.4 新语法之箭头函数实例详解
May 09 #PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 #PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 #PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
May 09 #PHP
PHP CURL中传递cookie的方法步骤
May 09 #PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
May 09 #PHP
You might like
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
php实现的农历算法实例
2015/08/11 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
Python构造函数及解构函数介绍
2015/02/26 Python
Python中有趣在__call__函数
2015/06/21 Python
python发送邮件脚本
2018/05/22 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python 画函数曲线示例
2019/12/04 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
python如何控制进程或者线程的个数
2020/10/16 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
应届实习生的自我评价范文
2014/01/05 职场文书
小溪流的歌教学反思
2014/02/13 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
开会通知短信大全
2015/04/20 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server