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 删除cookie和浏览器重定向
Mar 16 PHP
PHP 学习路线与时间表
Feb 21 PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
PHP实现的一致性哈希算法完整实例
Nov 14 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
golang与PHP输出excel示例
Jul 22 PHP
php实现将二维关联数组转换成字符串的方法详解
Jul 31 PHP
php微信支付之公众号支付功能
May 30 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
PHP初学者头疼问题总结
2006/10/09 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
js indexOf()定义和用法
2012/10/21 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
vue组件是如何解析及渲染的?
2021/01/13 Vue.js
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
Python实现Const详解
2015/01/27 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
Python生成器generator原理及用法解析
2020/07/20 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
荷兰电脑专场:Paradigit
2018/05/05 全球购物
启动一个线程是用run()还是start()
2016/12/25 面试题
社区庆中秋节活动方案
2014/02/07 职场文书
建筑节能汇报材料
2014/08/22 职场文书
公司租房协议书范本
2014/10/08 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书