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 相关文章推荐
AJAX for PHP简单表数据查询实例
Jan 02 PHP
php入门学习知识点四 PHP正则表达式基本应用
Jul 14 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
php获取json数据所有的节点路径
May 17 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
PHP数组实例详解
Jun 26 PHP
laravel 多图上传及图片的存储例子
Oct 14 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 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 读取文件乱码问题
2010/02/20 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
JS根据变量保存方法名并执行方法示例
2014/04/04 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
Python下的twisted框架入门指引
2015/04/15 Python
Python 中的 else详解
2016/04/23 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
2020/01/18 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
如何基于Python pygame实现动画跑马灯
2020/11/18 Python
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
公司JAVA开发面试题
2015/04/02 面试题
前台接待岗位职责
2013/12/03 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
初中语文教学研修日志
2015/11/13 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
教你nginx跳转配置的四种方式
2022/07/07 Servers