资讯专栏INFORMATION COLUMN

10个非常好用的 Laravel 辅助函数

liangzai_cool / 2233人阅读

摘要:要解决此问题,只需运行以下命令即可使用包函数将字符串转换为复数形式。函数接受两个参数一个值和一个闭包。该值将被传递给闭包,然后该值将被返回。更新方法返回布尔值,但由于用了,所以它将返回。这对调试非常有用。函数根据给定的字符串生成一个友好的。

Laravel包含各种全局辅助函数(helper), 你可以使用它们使开发工作流程更加轻松。 在这里,我将会列一下10个最好的 Laravel helpers,它们使我的开发更容易。 必要时大家也考虑使用它们。

更多的辅助函数,可以看 Laravel官方文档

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中使用它时,会引发 RamseyUuidExceptionUnsatisfiedDependencyException。 要解决此问题,只需运行以下命令即可使用 moontoast/math 包:

composer require "moontoast/math"
use IlluminateSupportStr;

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 = AppUser::find(1);

return tap($user, function($user) {
    $user->update([
        "name" => "Random"
    ]);
});

它不会返回布尔值,而是返回 User Model

如果你没有传递闭包,你也可以使用 User Model 的任何方法。 无论实际返回的方法如何,返回值都将始终为值。 在下面的例子中,它将返回 User Model 而不是布尔值。 更新方法返回布尔值,但由于用了 tap ,所以它将返回 User Model

$user = AppUser::find(1);

return tap($user)->update([
    "name" => "SomeName"
]);
dump()

dump() 函数会dump给定的变量,同时也支持同时传入多个变量。这对调试非常有用。

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

str_slug() 函数根据给定的字符串生成一个友好的URL。你可以使用此功能为你的帖子或产品标题创建一个 slug

$slug = str_slug("Helpers in Laravel", "-");

// helpers-in-laravel
optional()

optional() 函数接受一个参数,你可以调用它的方法或访问属性。如果传递的对象为null,则方法和属性将返回null而不是导致错误或抛出异常。

$user = User::find(1);

return optional($user)->name;
关于更多PHP的使用,请前往 PHPCasts社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28655.html

相关文章

  • laravel框架应用和composer扩展包开发

    摘要:官方地址是目前最流行的框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,框架思想前卫,跟随时代潮流,提倡优雅代码,自称为工匠,其中的模板引擎容器以及扩展包为业务的开发提供了极大的便利。 laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,发展势头迅猛,应用非常广泛,有丰富的扩展包可以应付你能想到的各种应用场景,lara...

    shevy 评论0 收藏0
  • 推荐使用 Laravel 辅助函数

    摘要:文章转自包含各种全局辅助函数。返回应用程序中公共目录的完全限定的绝对路径。要解决此问题,只需运行以下命令即可使用包函数将字符串转换为复数形式。该值将被传递给闭包,然后该值将被返回。方法返回布尔值,但由于用了,所以它将返回。 showImg(https://segmentfault.com/img/remote/1460000018944915?w=1408&h=846); 文章转自:h...

    CastlePeaK 评论0 收藏0
  • 推荐Laravel中又一好用helper

    摘要:中的又一个辅助函数可以允许你访问给定对象的属性或者方法。下面举例来看下。不妨你也试试吧更多知识,可前往 Laravel 中的又一个辅助函数 optional() 可以允许你访问给定对象的属性或者方法。如果给定的对象是 null,属性或方法将会返回 null 代替返回 error。 下面举例来看下。 // app/Models/User.php class User extends Mo...

    VioletJack 评论0 收藏0
  • 推荐使用 Laravel 辅助函数

    摘要:函数允许你将多维数组转换为使用点符号的一维数组。返回应用程序中公共目录的完全限定的绝对路径。要解决此问题,只需运行以下命令即可使用包将字符串转换为复数形式。接受两个参数一个值和一个闭包。该值将被传递给闭包,然后该值将被返回。 array_dot() 函数允许你将多维数组转换为使用点符号的一维数组。 $array = [ user => [username => somethin...

    琛h。 评论0 收藏0
  • Laravel optional 辅助函数

    摘要:所以,这个时候,就可以派上用场了我们只需要这样获取用户的地址信息就好这个时候,即使为空值,这一行代码也不会报错,而是会显示一个空的字符串出来。 在 Laravel 新版本当中,有一个非常有用的辅助方法:optional() 这个方法的应用场景是什么呢?其实如果你多写代码的话,经常会遇到类似下面的报错信息: Call to a member function on null objec...

    ymyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<