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可能遇到的问题“无法载入mysql扩展” 的解决方法
Apr 16 PHP
php中使用Akismet防止垃圾评论的代码
Jun 10 PHP
php实现过滤UBB代码的类
Mar 12 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
PHP闭包函数详解
Feb 13 PHP
浅谈PHP中的
Apr 23 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
laravel学习教程之存取器
Jul 30 PHP
PHP房贷计算器实例代码,等额本息,等额本金
Apr 01 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
Jun 21 PHP
PHP文件系统管理(实例讲解)
Sep 19 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 date函数参数详解
2006/11/27 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
用javascript动态调整iframe高度的方法
2007/03/06 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
动态为事件添加js代码示例
2009/02/15 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
python Pillow图像处理方法汇总
2019/10/16 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
几道PHP的面试题
2012/05/19 面试题
请假条的格式
2014/04/11 职场文书
财务人员担保书
2014/05/13 职场文书
爱我中华演讲稿
2014/05/20 职场文书
奉献演讲稿范文
2014/05/21 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS