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 相关文章推荐
PHP4在Windows2000下的安装
Oct 09 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
Mar 24 PHP
php 文件夹删除、php清除缓存程序
Aug 25 PHP
php中使用addslashes函数报错问题的解决方法
Feb 06 PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 PHP
PHP中spl_autoload_register()和__autoload()区别分析
May 10 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
php编写简单的文章发布程序
Jun 18 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php的字符串用法小结
2010/06/08 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
Codeigniter发送邮件的方法
2015/03/19 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
2017/02/15 PHP
js刷新框架子页面的七种方法代码
2008/11/20 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
手把手教你python实现SVM算法
2017/12/27 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
数控专业推荐信范文
2013/12/02 职场文书
教学大赛获奖感言
2014/01/15 职场文书
30岁生日感言
2014/01/25 职场文书
家长对小学生的评语
2014/01/28 职场文书
安全生产目标责任书
2014/04/14 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
中学推普周活动总结
2015/05/07 职场文书