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
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
PHP 远程关机实现代码
Nov 10 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
PHP原生函数一定好吗?
Dec 08 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
php计算年龄精准到年月日
Nov 17 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
php+laravel 扫码二维码签到功能
May 15 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使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
浅谈关于.vue文件中style的scoped属性
2017/08/19 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
耐克中国官方商城:Nike中国
2018/10/18 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
幼儿教师培训感言
2014/03/08 职场文书
妇联主席先进事迹
2014/05/18 职场文书
学生党员检讨书范文
2014/12/27 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
MySQL数据库表约束讲解
2022/06/21 MySQL