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 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
PHP5.3安装Zend Guard Loader图文教程
Sep 29 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
Dec 18 PHP
使用PHP如何实现高效安全的ftp服务器(二)
Dec 30 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
Laravel 队列使用的实现
Jan 08 PHP
php设计模式之工厂模式用法经典实例分析
Sep 20 PHP
laravel 多图上传及图片的存储例子
Oct 14 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
javascript 自定义事件初探
2009/08/21 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python交换变量
2008/09/06 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
python3 拼接字符串的7种方法
2018/09/12 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
升职自荐信范文
2013/10/05 职场文书
快递业务员岗位职责
2014/01/06 职场文书
幼儿园招生广告
2014/03/19 职场文书
投资入股合作协议书
2014/10/28 职场文书
新教师个人工作总结
2015/02/06 职场文书
毕业班工作总结
2015/08/10 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
P站美图推荐——变身女主角特辑
2022/03/20 日漫