1.Loggerlogger
辅助函数可以在系统日志等级为 debug
的时候记录一些日志信息。
logger('Product was changed.', ['id' => $product->id]);
上述代码会在日志文件中写入一行信息:
[2019-07-30 14:28: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. Blankblank
辅助函数会检查给定值是否为空值。空值代表 null
值 、只包含空格的字符串、空数组、或者空字符串。
提示:Booleans 布尔值,不视为空值
blank('');
blank(' ');
blank(null);
blank(collect())
// 以上均返回 true
blank(0);
blank(true);
blank(false);
// 以上将返回 false
4. Dump 变量
如果要调试一个或多个变量,使用 dump
变量非常方便。
dump($variable);
还可以通过向 dump
函数传递额外的变量来调试多个变量。
dump($var1, $var2, $var3);
除了 dump
函数之外,还有另一个函数。这个辅助函数就是 dd
, 意思是 dump and die
。这个函数的用法和 dump
一样。 dd
函数不仅执行了 dump
,还会终止执行语句( die()
的效果 )。
5. 路径
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. Optionaloptional
辅助函数允许你访问作为参数传递的对象的属性或调用方法。此函数接受任何参数。
如果传递给函数的对象是 null , 则属性和方法将返回 null ,而不会抛出错误
print optional($blog->author)->full_name;
如果在上面的示例中设置了 $blog->author
,那么将打印 $blog->author
的 full_name
。如果由于某种原因不存在 $blog->author
,就不会抛出错误,也不会打印任何内容。
10. PluckArr::pluck
方法会从数组中检索给定键的所有值。
$parents = [
['parent' => ['id' => 1, 'name' => 'James']],
['parent' => ['id' => 8, 'name' => 'Lisa']],
];
Arr::pluck($parents, 'parent.name'); // ['James', 'Lisa']