Laravel包含各类全局辅助函数(helper), 你可使用它们使开发工做流程更加轻松。 在这里,我将会列一下10个最好的 Laravel helpers,它们使个人开发更容易。 必要时你们也考虑使用它们。php
更多的辅助函数,能够看 Laravel官方文档laravel
array_dot()
辅助函数容许你将多维数组转换为使用点符号的一维数组。shell
$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 = [ '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()
返回 Laravel 应用程序中公共目录的彻底限定的绝对路径。 你还能够将路径传递到公共目录中的文件或目录以获取该资源的绝对路径。 它将简单地将public_path()
添加到你的参数中。闭包
$public_path = public_path(); $path = public_path('js/app.js');
Str::orderedUuid()
函数首先生成一个时间戳uuid。 这个uuid能够存储在索引数据库列中。 这些uuid是基于时间戳建立的,所以它们会保留你的内容索引。 在Laravel 5.6中使用它时,会引起 Ramsey\Uuid\Exception\UnsatisfiedDependencyException
。 要解决此问题,只需运行如下命令便可使用 moontoast/math
包:app
composer require "moontoast/math"
use Illuminate\Support\Str; return (string) Str::orderByUuid() // A timestamp first uuid
str_plural()
函数将字符串转换为复数形式。该功能只支持英文。composer
echo str_plural('bank'); // banks echo str_plural('developer'); // developers
route()
函数为指定的路由生成路由URL。dom
$url = route('login');
若是路由接受参数,你能够简单地将它们做为第二个参数传递给一个数组。函数
$url = route('products', ['id' => 1]);
若是你想产生一个相对的URL而不是一个绝对的URL,你能够传递false做为第三个参数。
$url = route('products', ['id' => 1], false);
tap()
函数接受两个参数:一个值和一个闭包。该值将被传递给闭包,而后该值将被返回。闭包返回值可有可无。
$user = App\User::find(1); return tap($user, function($user) { $user->update([ 'name' => 'Random' ]); });
它不会返回布尔值,而是返回 User Model
。
若是你没有传递闭包,你也可使用 User Model
的任何方法。 不管实际返回的方法如何,返回值都将始终为值。 在下面的例子中,它将返回 User Model
而不是布尔值。 更新方法返回布尔值,但因为用了 tap
,因此它将返回 User Model
。
$user = App\User::find(1); return tap($user)->update([ 'name' => 'SomeName' ]);
dump()
函数会dump给定的变量,同时也支持同时传入多个变量。这对调试很是有用。
dump($var1); dump($var1, $var2, $var3);
str_slug()
函数根据给定的字符串生成一个友好的URL。你可使用此功能为你的帖子或产品标题建立一个 slug
。
$slug = str_slug('Helpers in Laravel', '-'); // helpers-in-laravel
optional()
函数接受一个参数,你能够调用它的方法或访问属性。若是传递的对象为null,则方法和属性将返回null而不是致使错误或抛出异常。
$user = User::find(1); return optional($user)->name;
关于更多PHP的使用,请前往 PHPCasts社区