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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
解析php二分法查找数组是否包含某一元素
May 23 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
php的sso单点登录实现方法
Jan 08 PHP
php中session与cookie的比较
Jan 27 PHP
wampserver改变默认网站目录的办法
Aug 05 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
Feb 25 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
如何优雅的使用 laravel 的 validator验证方法
Nov 11 PHP
laravel 解决Validator使用中出现的问题
Oct 25 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
js资料toString 方法
2007/03/13 Javascript
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
jQuery弹出层插件popShow用法示例
2017/01/23 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
python常见的格式化输出小结
2016/12/15 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
介绍一下linux文件系统分配策略
2012/11/17 面试题
自考自我鉴定范文
2013/10/30 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
人事专员工作职责
2014/02/22 职场文书
外国人聘用意向书
2014/04/01 职场文书
超强台风观后感
2015/06/09 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS