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 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
Sep 20 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
php生成高清缩略图实例详解
Dec 07 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
PHP常用的三种设计模式
Feb 17 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 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使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python MD5文件生成码
2009/01/12 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
python自动化办公操作PPT的实现
2021/02/05 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
yy结婚证婚词
2014/01/10 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
公务员政审材料
2014/12/23 职场文书
党员转正介绍人意见
2015/06/03 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
django 认证类配置实现
2021/11/11 Python