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抓即时股票信息
Oct 09 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
php编写一个简单的路由类
Apr 13 PHP
yii框架中的Url生产问题小结
Jan 16 PHP
PHP错误和异长常处理总结
Mar 06 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 PHP
php操作redis缓存方法分享
Jun 03 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
php魔术方法功能与用法实例分析
Oct 19 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 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框架的优缺点对比分析
2014/12/25 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
js下写一个事件队列操作函数
2010/07/19 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
纯JS实现轮播图
2017/02/22 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
python迭代器与生成器详解
2016/03/10 Python
python学生管理系统学习笔记
2019/03/19 Python
微信公众号token验证失败解决方案
2019/07/22 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
RealTek面试题
2016/06/28 面试题
业务总经理岗位职责
2014/02/03 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
建筑节能汇报材料
2014/08/22 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android