[ Laravel 5.1 文档 ] 服务 —— 帮助函数

[ Laravel 5.1 文档 ] 服务 —— 帮助函数

http://laravelacademy.org/post/205.html

1、简介

Laravel自带了一系列PHP帮助函数,很多被框架自身使用,然而,如果你觉得方便的话也可以在应用中随心所欲的使用它们。

2、 数组函数

array_add()

array_add函数添加给定键值对到数组,如果给定键不存在的话:

$array = array_add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]

array_divide()

array_divide函数返回两个数组,一个包含原数组的所有键,另外一个包含原数组的所有值:

list($keys, $values) = array_divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']

array_dot()

array_dot函数使用”.“号将将多维数组转化为一维数组:

$array = array_dot(['foo' => ['bar' => 'baz']]);
// ['foo.bar' => 'baz'];

array_except()

array_except方法从数组中移除给定键值对:

$array = ['name' => 'Desk', 'price' => 100];

$array = array_except($array, ['price']);
// ['name' => 'Desk']

array_first()

array_first方法返回通过测试数组的第一个元素:

$array = [100, 200, 300];

$value = array_first($array, function ($key, $value) {
    return $value >= 150;});
// 200

默认值可以作为第三个参数传递给该方法,如果没有值通过测试的话返回默认值:

$value = array_first($array, $callback, $default);

array_flatten()

array_flatten方法将多维数组转化为一维数组:

$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];

$array = array_flatten($array);
// ['Joe', 'PHP', 'Ruby'];

array_forget()

array_forget方法使用”.“号从嵌套数组中移除给定键值对:

$array = ['products' => ['desk' => ['price' => 100]]];

array_forget($array, 'products.desk');
// ['products' => []]

array_get()

array_get方法使用”.“号从嵌套数组中获取值:

$array = ['products' => ['desk' => ['price' => 100]]];

$value = array_get($array, 'products.desk');
// ['price' => 100]

array_get函数还接收一个默认值,如果指定键不存在的话则返回该默认值:

$value = array_get($array, 'names.john', 'default');

array_only()

array_only方法只从给定数组中返回指定键值对:

$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];

$array = array_only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]

array_pluck()

array_pluck方法从数组中返回给定键对应的键值对列表:

$array = [
    ['developer' => ['name' => 'Taylor']],
    ['developer' => ['name' => 'Abigail']]];

$array = array_pluck($array, 'developer.name');
// ['Taylor', 'Abigail'];

array_pull()

array_pull方法从数组中返回并移除键值对:

$array = ['name' => 'Desk', 'price' => 100];

$name = array_pull($array, 'name');
// $name: Desk

// $array: ['price' => 100]

array_set()

array_set方法在嵌套数组中使用”.“号设置值:

$array = ['products' => ['desk' => ['price' => 100]]];

array_set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]

array_sort()

array_sort方法通过给定闭包的结果对数组进行排序:

$array = [
    ['name' => 'Desk'],
    ['name' => 'Chair'],
];

$array = array_values(array_sort($array, function ($value) {
    return $value['name'];
}));

/*
    [
        ['name' => 'Chair'],
        ['name' => 'Desk'],
    ]
*/

array_sort_recursive()

array_sort_recursive函数使用sort函数对数组进行递归排序:

$array = [
    [
        'Roman',
        'Taylor',
        'Li',
    ],
    [
        'PHP',
        'Ruby',
        'JavaScript',
    ],
];

$array = array_sort_recursive($array);

/*
    [
        [
            'Li',
            'Roman',
            'Taylor',
        ],
        [
            'JavaScript',
            'PHP',
            'Ruby',
        ]
    ];
*/

array_where()

array_where函数使用给定闭包对数组进行过滤:

$array = [100, '200', 300, '400', 500];

$array = array_where($array, function ($key, $value) {
    return is_string($value);
});
// [1 => 200, 3 => 400]

head()

head函数只是简单返回给定数组的第一个元素:

$array = [100, 200, 300];

$first = head($array);
// 100

last()

last函数返回给定数组的最后一个元素:

$array = [100, 200, 300];

$last = last($array);
// 300

3、路径函数

app_path()

app_path函数返回app目录的绝对路径:

$path = app_path();

你还可以使用app_path函数为相对于app目录的给定文件生成绝对路径:

$path = app_path('Http/Controllers/Controller.php');

base_path()

base_path函数返回项目根目录的绝对路径:

$path = base_path();

你还可以使用base_path函数为相对于应用目录的给定文件生成绝对路径:

$path = base_path('vendor/bin');

config_path()

config_path函数返回应用配置目录的绝对路径:

$path = config_path();

database_path()

database_path函数返回应用数据库目录的绝对路径:

$path = database_path();

public_path()

public_path函数返回public目录的绝对路径:

$path = public_path();

storage_path()

storage_path函数返回storage目录的绝对路径:

$path = storage_path();

还可以使用storage_path函数生成相对于storage目录的给定文件的绝对路径:

$path = storage_path('app/file.txt');

4、字符串函数

camel_case()

camel_case函数将给定字符串转化为按驼峰式命名规则的字符串:

$camel = camel_case('foo_bar');
// fooBar

class_basename()

class_basename返回给定类移除命名空间后的类名:

$class = class_basename('Foo\Bar\Baz');
// Baz

e()

e函数在给定字符串上运行htmlentities

echo e('<html>foo</html>');
// &lt;html&gt;foo&lt;/html&gt;

ends_with()

ends_with函数判断给定字符串是否以给定值结尾:

$value = ends_with('This is my name', 'name');
// true

snake_case()

snake_case函数将给定字符串转化为下划线分隔的字符串:

$snake = snake_case('fooBar');
// foo_bar

str_limit()

str_limit函数限制输出字符串的数目,该方法接收一个字符串作为第一个参数以及该字符串最大输出字符数作为第二个参数:

$value = str_limit('The PHP framework for web artisans.', 7);
// The PHP...

starts_with()

starts_with函数判断给定字符串是否以给定值开头:

$value = starts_with('This is my name', 'This');
// true

str_contains()

str_contains函数判断给定字符串是否包含给定值:

$value = str_contains('This is my name', 'my');
// true

str_finish()

str_finish函数添加字符到字符串结尾:

$string = str_finish('this/string', '/');
// this/string/

str_is()

str_is函数判断给定字符串是否与给定模式匹配,星号可用于表示通配符:

$value = str_is('foo*', 'foobar');
// true
$value = str_is('baz*', 'foobar');
// false

str_plural()

str_plural函数将字符串转化为复数形式,该函数当前只支持英文:

$plural = str_plural('car');
// cars
$plural = str_plural('child');
// children

str_random()

str_random函数通过指定长度生成随机字符串:

$string = str_random(40);

str_singular()

str_singular函数将字符串转化为单数形式,该函数目前只支持英文:

$singular = str_singular('cars');
// car

str_slug()

str_slug函数将给定字符串生成URL友好的格式:

$title = str_slug("Laravel 5 Framework", "-");
// laravel-5-framework

studly_case()

studly_case函数将给定字符串转化为单词开头字母大写的格式:

$value = studly_case('foo_bar');
// FooBar

trans()

trans函数使用本地文件翻译给定语言行:

echo trans('validation.required'):

trans_choice()

trans_choice函数翻译带拐点的给定语言行:

$value = trans_choice('foo.bar', $count);

5、URL函数

action()

action函数为给定控制器动作生成URL,你不需要传递完整的命名空间到该控制器,传递相对于命名空间App\Http\Controllers的类名即可:

$url = action('HomeController@getIndex');

如果该方法接收路由参数,你可以将其作为第二个参数传递进来:

$url = action('UserController@profile', ['id' => 1]);

asset()

使用当前请求的scheme(HTTP或HTTPS)为前端资源生成一个URL:

$url = asset('img/photo.jpg');

secure_asset()

使用HTTPS为前端资源生成一个URL:

echo secure_asset('foo/bar.zip', $title, $attributes = []);

route()

route函数为给定命名路由生成一个URL:

$url = route('routeName');

如果该路由接收参数,你可以将其作为第二个参数传递进来:

$url = route('routeName', ['id' => 1]);

url()

url函数为给定路径生成绝对路径:

echo url('user/profile');

echo url('user/profile', [1]);

6、其它函数

auth()

auth函数返回一个认证器实例,为方便起见你可以用其取代Auth门面:

$user = auth()->user();

back()

back函数生成重定向响应到用户前一个位置:

return back();

bcrypt()

bcrypt函数使用Bcrypt对给定值进行哈希,你可以用其替代Hash门面:

$password = bcrypt('my-secret-password');

config()

config函数获取配置变量的值,配置值可以通过使用”.”号访问,包含文件名以及你想要访问的选项。如果配置选项不存在的话默认值将会被指定并返回:

$value = config('app.timezone');$value = config('app.timezone', $default);

帮助函数config还可以用于在运行时通过传递键值对数组设置配置变量值:

config(['app.debug' => true]);

csrf_field()

csrf_field函数生成一个包含CSRF令牌值的HTML隐藏域,例如,使用Blade语法

{!! csrf_field() !!}

csrf_token()

csrf_token函数获取当前CSRF令牌的值:

$token = csrf_token();

dd()

dd函数输出给定变量值并终止脚本执行:

dd($value);

elixir()

elixir函数获取带版本号的Elixir文件路径:

elixir($file);

env()

env函数获取环境变量值或返回默认值:

$env = env('APP_ENV');
// Return a default value if the variable doesn't exist...
$env = env('APP_ENV', 'production');

event()

event函数分发给定事件到对应监听器:

event(new UserRegistered($user));

factory()

factory函数为给定类、名称和数量创建模型工厂构建器,可用于测试或数据填充

$user = factory('App\User')->make();

method_field()

method_field函数生成包含HTTP请求方法的HTML隐藏域,例如:

<form method="POST">
    {!! method_field('delete') !!}</form>

old()

old函数获取一次性存放在session中的值:

$value = old('value');

redirect()

redirect函数返回重定向器实例进行重定向

return redirect('/home');

response()

response函数创建一个响应实例或者获取响应工厂实例:

return response('Hello World', 200, $headers);return response()->json(['foo' => 'bar'], 200, $headers)

value()

value函数返回给定的值,然而,如果你传递一个闭包到该函数,该闭包将会被执行并返回执行结果:

$value = value(function() { return 'bar'; });

view()

view函数获取一个视图实例:

return view('auth.login');

with()

with函数返回给定的值,该函数在方法链中特别有用,别的地方就没什么用了:

$value = with(new Foo)->work();

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113140.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月23日 下午8:00
下一篇 2021年10月23日 下午8:00


相关推荐

  • 河北对口计算机专业一分一档6,600分以上830人!河北一市中考一分一档表出炉!…

    河北对口计算机专业一分一档6,600分以上830人!河北一市中考一分一档表出炉!…出分啦!承德市2021年中考成绩公布6月30日,承德市教育考试招生信息平台公布2021年承德市中考成绩一分一档表!今年承德中考文化和体育是630分,理化实验20分,总计是650分。据一分一档表显示今年承德中考600分以上是830人2021年承德市中考成绩一分一档表除承德外河北其他地市什么时候能查分呢?有粉丝在后台问,衡水什么时候可以查分,这不,衡水市中考成绩发布时间也来啦~衡水市一、中考成绩发布时…

    2022年7月13日
    28
  • Linux 系统的常用命令之 rm ,rm -rf , rm -f 以及rm 命令的其他参数命令

    Linux 系统的常用命令之 rm ,rm -rf , rm -f 以及rm 命令的其他参数命令strong 1 rm rf 删除 strong

    2025年9月29日
    5
  • 后端神器Dataway入门

    后端神器Dataway入门文章目录 Dataway 框架概述 Hasor 简介 Dataway 接口配置服务 Dataway 介绍 Dataway 的主打场景 Dataway 的技术架构 DataQL 聚合查询引擎 DataQL 介绍 SpringBoot 整合 Dataway 引入依赖启用 Hasor 启用 Dataway 初始化必要的表 MySQL 初始化数据源启动工程配置接口 Dataway 框架概述 Hasor 简介 Hasor 是由多个不同系列框架组合而成的一个框架体系 这些子框架的能力涵盖了 IoC Aop WebMVC 数据库以及其他的方方面面 这一切的基础要归功于 Haso

    2026年3月17日
    1
  • s一般怎么称呼自己的m_从你对四种新疆夏至美食的称呼,就能判断你是不是新疆人…

    s一般怎么称呼自己的m_从你对四种新疆夏至美食的称呼,就能判断你是不是新疆人…夏至到了,看着晴朗的天空,体味着周围不断蒸腾起的热浪,尤其是内里的燥热难当。闭起眼来,问自己的内心的胃,现在最想吃的、喝的是什么?不承想,竟然是最具有新疆特色的几样美味。而且,我今天不准备说怎么吃,只说怎么叫!意不意外,新鲜不新鲜!第一种美味——冰镇红乌苏你一定会认为我要说大盘鸡?哈哈哈,太土了吧!也不知道从什么时候起,乌苏啤酒,成为了流行全国的夏日最火啤酒。如果你说“乌苏啤酒”恭喜你,你要被小轻…

    2022年6月23日
    37
  • python爬虫是干嘛用的_python除了爬虫还能干嘛

    python爬虫是干嘛用的_python除了爬虫还能干嘛Python 的应用领域主要有如下几个 Web 应用开发 Python 经常被用于 Web 开发 例如 通过 mod wsgi 模块 Apache 可以运行用 Python 编写的 Web 程序 Python 定义了 WSGI 标准应用接口来协调 HTTP 服务器与基于 Python 的 Web 程序之间的通信 操作系统管理 自动化运维开发很多操作系统中 Python 是标准的系统组件 大多数 Linu

    2026年3月19日
    2
  • IDEA/Pycharm等中全局搜索无效(win10)

    IDEA/Pycharm等中全局搜索无效(win10)IDEA/Pycharm等中全局搜索无效(win10)原因:系统输入法热键占用了Ctrl+Shift+F找到设置里的语言选中微软的输入法点击按键关闭热键结束语系统就能用Ctrl+Shift+F全局搜索了

    2022年5月20日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号