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 n个不重复的随机数生成代码
Jun 23 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
Aug 03 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
php实现的简单中文验证码功能示例
Jan 03 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 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
与数据库连接
2006/10/09 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
使用BootStrap进行轮播图的制作
2017/01/06 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python win32 简单操作方法
2017/05/25 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
如何定义一个可复用的服务
2014/09/30 面试题
汽车装潢店创业计划书范文
2014/02/05 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
初中生操行评语大全
2014/04/24 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python