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实现网上点歌(二)
Oct 09 PHP
用PHP进行MySQL删除记录操作代码
Jun 07 PHP
QueryPath PHP 中的jQuery
Apr 11 PHP
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
PHP的几个常用数字判断函数代码
Apr 24 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
php获取根域名方法汇总
Oct 28 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
PHP实现微信提现功能(微信商城)
Nov 21 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动态绑定变量的用法
2015/06/16 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
详解php实现页面静态化原理
2017/06/21 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
2014/01/06 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
Python手机号码归属地查询代码
2016/05/04 Python
Python模拟登陆实现代码
2017/06/14 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
全球性的在线购物网站:Zapals
2017/03/22 全球购物
爱游人:Travelliker
2017/09/05 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
实习生自我鉴定
2013/12/12 职场文书
求职信需要的五点内容
2014/02/01 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS