Laravel推荐使用的十个辅助函数

前言

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;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • Laravel5框架添加自定义辅助函数的方法

    本文实例讲述了Laravel5框架添加自定义辅助函数的方法.分享给大家供大家参考,具体如下: Laravel内包含了很多非常好用的辅助函数,比如array_get().array_first().app_path()等等,具体可以查看http://laravelacademy.org/post/205.html文档,这些辅助函数为我们提供了很多简单易用的功能,提升了我们的开发效率,但是如果要新增自定义的辅助函数怎么办呢?其实很容易,四步即可搞定: 一. 创建自定义辅助函数 在这里我们把函数放在a

  • Laravel推荐使用的十个辅助函数

    前言 Laravel 包含各种全局辅助函数. laravel 中包含大量辅助函数,您可以使用它们来简化开发工作流程. 在这里,我将编写 10 个最好的 laravel 帮助函数,用于使我的开发更容易. 您必须考虑在必要时使用它们. 您还可以查看所有的官方文档 laravel helper functions. array_dot() array_dot() array_dot () 辅助函数允许你将多维数组转换为使用点符号的一维数组. $array = [ 'user' => ['usernam

  • 详谈PHP程序Laravel 5框架的优化技巧

    Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论. 这里是简单的列表: 配置信息缓存 artisan config:cache 路由缓存 artisan route:cache 类映射加载优化 artisan optimize 自动加载优化 composer dumpautoload 使用 Memcached

  • Laravel框架中VerifyCsrfToken报错问题的解决

    前言 本文主要给大家介绍了关于Laravel框架中VerifyCsrfToken报错问题的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 报错情况 form 表单进行 post 方式提交数据时,遇到如下的报错情况. TokenMismatchException in VerifyCsrfToken.php line 67: in VerifyCsrfToken.php line 67 at VerifyCsrfToken->handle(object(Request)

  • Laravel框架实现多个视图共享相同数据的方法详解

    本文实例讲述了Laravel框架实现多个视图共享相同数据的方法.分享给大家供大家参考,具体如下: 最近在用Laravel写一个cms,还没有完成,但是也遇到了许多难点,比如cms后台每个视图都要展示相同的导航菜单数据. 环境: PHP 7.1 Apache 2.4 MySQL 5.7 Laravel 5.4 传统方法 假设使用传统的方法,应该是在每个控制器中都调用数据,然后把数据都塞给视图. $menu = DB::table('menu')->get(); return view('xx',[

  • 推荐几款用 Sublime Text 开发 Laravel 所用到的插件

    我目前主要使用 Sublime Text 2 做 Laravel 开发,主要插件如下: 1.Blade Snippets:提供 Blade 模板自动补全 2.Laravel 4 Blade Highlighter:提供 Blade 关键字高亮 3.Laravel Generator:提供超高效率 Laravel 工作流 这就是之前教程里面说过的way/generators 的 Composer 包的另一个版本,是运行在编辑器里的.不过还是推荐使用命令行版,因为可以方便地读取历史记录,并加以修改.

  • Laravel 5.5官方推荐的Nginx配置学习教程

    前言 本文主要给大家介绍了关于Laravel 5.5官方推荐的Nginx配置的想内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍把. Laravel 5.5 版本官方放出了 Nginx 服务器的配置,中文文档:服务器配置 Nginx server { listen 80; server_name example.com; root /example.com/public; add_header X-Frame-Options "SAMEORIGIN"; add_head

  • Laravel SQL语句记录方式(推荐)

    打印sql语句,直接在你执行SQL语句后输出 方法一: $queries = DB::getQueryLog(); $a = end($queries); $tmp = str_replace('?', '"'.'%s'.'"', $a["query"]); echo vsprintf($tmp, $a['bindings']); exit; 方法二:  注意 放在routes.php上面 Event::listen('illuminate.query',funct

  • PHP全局使用Laravel辅助函数dd

    dump() 方法 全局 composer.json "require": { "squizlabs/php_codesniffer": "*", "fxp/composer-asset-plugin": "^1.4", "symfony/var-dumper": "3.3.16" } 配置PHP.ini auto_prepend_file = "C:Use

  • Laravel整合Bootstrap 4的完整方案(推荐)

    如果你是想在laravel5.5上直接使用bootstrap 4,这应该是相对明智的,因为bootstrap 4最终版本已经发布了,那么这里有一个好消息,就是你不需要一步步执行下面的步骤了,你可以通过安装一个插件来快速使用上boostrap 4了,插件链接:laravelnews/laravel-twbs4,具体如何使用就不赘述了,按照插件文档进行就好了. 如果你是在laravel5.5之前的版本整合bootstrap 4,那么你还是需要走一遍下面的流程: (一)安装bootstrap及相应依赖

  • laravel获取不到session的三种解决办法【推荐】

    问题:引用第三方类库时,使用全局函数session()可以保存session,但是获取不到 1.路由置于 web 中间件下,修改app/Http/Kernel.php文件,如下 protected $middlewareGroups = [ //中间件web 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,

随机推荐