十个必知的 Laravel 5.8 辅助函数

栏目: IT技术 · 发布时间: 6年前 · 151

Laravel 有很多辅助函数,它们提供了一种处理路径、数组和字符串的捷径。而完全了解它们却是几乎不可能的事情。大多数开发者都只知道一些最常见的,但是如果你再深入一点,会发现有一些非常有用的辅助函数。在本文中,我将为你提供十个你应该了解的辅助函数。

1. Logger

logger 辅助函数可以在系统日志等级为 debug 的时候记录一些日志信息。

logger('Product was changed.', ['id' => $product->id]);

上述代码会在日志文件中写入一行信息:

[2019-06-14 09:53:22] local.DEBUG: Product was changed. {"id":4}

如果没有传入参数,那么 logger 函数将会返回 Logger 实例,这样你可以自己控制记录日志的等级。

logger()->error('An error occurred');

上述代码会在日志文件中写入这样的一行信息:

[2019-06-14 09:56:12] local.ERROR: An error occurred

2. 划分一个数组

Arr::divide() 方法允许你将一个数组分成俩数组。函数的返回值为两个数组,一个包含原始数组的键,另一个包含原始数组的值。

use Illuminate\Support\Arr;

[$keys, $values] = Arr::divide(['name' => 'James', 'age' => 33]);

$keys: ['name', 'age']
$values: ['James', 33]

3. Blank

blank 辅助函数会检查给定值是否为空值。空值代表 null 值 、只包含空格的字符串、空数组、或者空字符串。

提示:Booleans 布尔值,视为空值

blank('');
blank('   ');
blank(null);
blank(collect())
// 以上均返回 true

blank(0);
blank(true);
blank(false);
// 以上将返回 false

与这个辅助函数相反的是 filled辅助函数

4. Dump 变量

如果要调试一个或多个变量,使用 dump 变量非常方便。

dump($variable);

还可以通过向 dump 函数传递额外的变量来调试多个变量。

dump($var1, $var2, $var3);

除了 dump 函数之外,还有另一个函数。这个辅助函数就是 dd , 意思是 dump and die 。这个函数的用法和 dump 一样。 dd 函数不仅执行了 dump ,还会终止执行语句( die() 的效果 )。

5. 路径

Laravel 有多个关于路径的辅助函数,你可以使用这些函数来获取特定目录的完全路径。

以下是 Laravel 关于路径的辅助函数:

  • app_path
  • base_path
  • config_path
  • database_path
  • public_path
  • resource_path
  • storage_path
echo storage_path(); // 输出:"C:\Path\To\My\Project\storage"

当然你还可以将参数传递给路径辅助函数,该函数将附加到返回的路径中:

echo storage_path('attachment.pdf');  // 输出: "C:\Path\To\My\Project\storage\attachment.pdf"

6. Slug

要将给定的字符串生成 URL 友好的字符串,可以使用 Str::slug 函数。

$slug = Str::slug('Laravel Is Awesome');
// $slug: "laravel-is-awesome"

默认的分隔符是 连字符(-),当然你也可以通过向函数传递第二个参数来覆盖它。

$slug = Str::slug('Laravel Is Awesome', '&');
// $slug: "laravel&is&awesome"

7. 数组是否具有值

Arr:has 方法可用于使用 “.” 符号来检查数组中是否存在某个项或多个项。

要检查多个项,只需将数组传递给方法而不是传递字符串。

use Illuminate\Support\Arr;
$blogs = ['blog' => ['title' => 'My blog', 'published' => true]];
$contains = Arr::has($blogs, 'blog.title'); // true
$contains = Arr::has($blogs, ['blog.title', 'blog.published']); // true
$contains = Arr::has($blogs, ['blog.title', 'blog.author']); // false

8. UUID

调用 Str::uuid 方法会生成一个 UUID:

use Illuminate\Support\Str;
echo (string) Str::uuid(); // "2ad4abcc-8adc-47b6-b21e-9e5497a8af1b"

9. Optional

optional 辅助函数允许你访问作为参数传递的对象的属性或调用方法。此函数接受任何参数。

如果传递给函数的对象是 null , 则属性和方法将返回 null ,而不会抛出错误。

print optional($blog->author)->full_name;

如果在上面的示例中设置了 $blog->author ,那么将打印 $blog->authorfull_name 。如果由于某种原因不存在 $blog->author ,就不会抛出错误,也不会打印任何内容。

10. Pluck

Arr::pluck 方法会从数组中检索给定键的所有值。

$parents = [
    ['parent' => ['id' => 1, 'name' => 'James']],
    ['parent' => ['id' => 8, 'name' => 'Lisa']],
];
Arr::pluck($parents, 'parent.name'); // ['James', 'Lisa']

以上就是我想和你分享的 10 个 Laravel 辅助函数,也请你分享对这篇文章的看法。一定要好好查看我的其他文章哦,我的很多文章都是关于 Laravel 的。如果你对我的文章有任何反馈、疑问,或者你希望我撰写另一个有关 Laravel 的主题,都可以随时发表评论。

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Building Social Web Applications

Building Social Web Applications

Gavin Bell / O'Reilly Media / 2009-10-1 / USD 34.99

Building a social web application that attracts and retains regular visitors, and gets them to interact, isn't easy to do. This book walks you through the tough questions you'll face if you're to crea......一起来看看 《Building Social Web Applications》 这本书的介绍吧!

JS 压缩/解压工具

JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密

MD5 加密

MD5 加密工具

XML 在线格式化

XML 在线格式化

在线 XML 格式化压缩工具