目录
Str::limit()
head()
Str::between()
blank()
Str::contains()
Arr::pluck()
collect()
首页 php框架 Laravel 【整理分享】几个实用的 Laravel 辅助函数

【整理分享】几个实用的 Laravel 辅助函数

Dec 28, 2022 pm 09:01 PM
php laravel

作为一个以Laravel为主的PHP全栈开发人员,我会经常去寻找一些框架中、可以为我所用的、有效减少开发时间或者减少代码复杂性的方法。下面是我整理的在平常会经常用到的一些不错的辅助方法。让我们一探究竟吧 ✨

【整理分享】几个实用的 Laravel 辅助函数

文中方法大都基于Laravel7以及更早的版本。(如果遇到问题,请先检查是否是版本兼容问题)

Str::limit()

我们的第一个辅助函数 获取一个字符串并用一个设定的字符长度限制截断它 。它有两个必须参数:你想截断的字符串,以及返回的被截断的字符串的字符长度限制。【相关推荐:laravel视频教程

use Illuminate\Support\Str;

$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);

// The quick brown fox ...
登录后复制

你也可以传入第三个可选参数来控制返回的字符串后显示什么。

use Illuminate\Support\Str;

$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, '[...]');

// The quick brown fox [...]
登录后复制

我发现这用于把一大段文本缩短为摘要或文章列表的帖子预览是完美的。

head()

这个功能超赞。 一个简单的方法通常由几个嵌套的原始PHP函数组成,head()会返回数组的第一个元素。 由于其全局性和无处不在的性质,我已经在许多不同的应用程序中使用了它。

$array = [100, 200, 300];

$first = head($array);

// 100
登录后复制

想要反着来吗? 使用last方法可以获取数组的最后一个元素。

$array = [100, 200, 300];

$last = last($array);

// 300
登录后复制

这是关于使用head和last方法的最佳方法,因为它们根本不影响原始数组。

Str::between()

顾名思义, Str::between() 会 返回字符串中的内容。如果没有找到指定字符串,返回 null

use Illuminate\Support\Str;

$slice = Str::between('My name is Inigo Montoya.', 'My name is ', '.');

// 'Inigo Montoya'
登录后复制

我喜欢用这种方式从 ()[] 之间获取信息、返回 url 中的特定部分、甚至是从 html 标签中解析数据。

blank()

它 empty()差不多,但是更好用。它根据你传入的参数是否包含实际数据,来返回一个布尔值。

// all of these return true
blank('');
blank('   ');
blank(null);
blank(collect());

// all of these return false
blank(true);
blank(false);
blank(0);
登录后复制

这个辅助函数在结合表单验证、除去 API 中没有规范输入的数据时,特别有用。
它比 empty(trim()) 更好用。

Str::contains()

我们期待已久的辅助函数, 确定一个字符串中是否包含另一个字符串. 这个问题在 StackOverflow 和其他编程论坛上已经被问过很多次了, 因为目前在普通PHP程序中只能使用 strpos.

use Illuminate\Support\Str;

$contains = Str::contains('My name is Inigo Montoya.', 'Inigo');

// true

$contains = Str::contains('My name is Inigo Montoya.', 'Andrew');

// false
登录后复制

随着最近的rfc的批准,PHP将很快拥有自己的str_contains方法,这将使该方法过时。不过在此之前,它是Laravel中最有用的辅助函数之一。

Arr::pluck()

该方法可以说是我在本文中列出的更强大的方法之一,Arr::pluck 遍历多维数组并检索给定键的所有值

让我们来看一个简单的例子:

use Illuminate\Support\Arr;

$array = [
    ['website' => ['id' => 1, 'url' => 'reddit.com']],
    ['website' => ['id' => 2, 'url' => 'twitter.com']],
    ['website' => ['id' => 3, 'url' => 'dev.to']],
];

$names = Arr::pluck($array, 'website.url');

// ['reddit.com', 'twitter.com', 'dev.to']
登录后复制

传入一个数组和一个点符号字符串来确定我们想要的键值,然后遍历多维数组,并将指定键所对应值的一维数组返回给我们。

我在返回的API数据中多次使用过该方法(当我觉得不需要使用整个的集合时)。它使获得ID,名称或其他属性的数组变得非常容易,而无需创建整个foreach循环。

collect()

一旦发现集合有关的信息,我就不会停止使用它们。 这可能是我发现自己最常使用的助手函数,它可以让您 将数组转换为集合

为什么这很重要? 因为集合带有大量的便捷方法,您可以将它们组合在一起用最简单的闭包参数对数组执行各种过滤,排序和修改等操作。 没有foreach 循环,没有中间变量,只是干净的代码。

看看这个简单的例子:

$collection = collect(['Keys', 'Krates']);

return $collection->map(function ($value) {
    return Str::upper($value);
});

// ['KEYS', 'KRATES']

return $collection->filter(function ($value) {
    return strlen($value) > 4;
});

// ['Krates']
登录后复制

老实说,这只是集合的冰山一角。 我在项目中都使用了它们,尤其是当我要处理不是来自数据库模型的庞大而复杂的数据集时。 CSV 数据,外部API请求和目录结构都可以从放入集合中使用。

这就是我现在所了解的!

原文地址:https://dev.to/aschmelyun/my-favorite-laravel-helpers-and-how-to-use-them-28ij

译文地址:https://learnku.com/laravel/t/43776

更多编程相关知识,请访问:编程视频!!

以上是【整理分享】几个实用的 Laravel 辅助函数的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP的当前状态:查看网络开发趋势 PHP的当前状态:查看网络开发趋势 Apr 13, 2025 am 12:20 AM

PHP在现代Web开发中仍然重要,尤其在内容管理和电子商务平台。1)PHP拥有丰富的生态系统和强大框架支持,如Laravel和Symfony。2)性能优化可通过OPcache和Nginx实现。3)PHP8.0引入JIT编译器,提升性能。4)云原生应用通过Docker和Kubernetes部署,提高灵活性和可扩展性。

PHP与其他语言:比较 PHP与其他语言:比较 Apr 13, 2025 am 12:19 AM

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP的持久相关性:它还活着吗? PHP的持久相关性:它还活着吗? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

PHP与Python:核心功能 PHP与Python:核心功能 Apr 13, 2025 am 12:16 AM

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHP的目的:构建动态网站 PHP的目的:构建动态网站 Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP行动:现实世界中的示例和应用程序 PHP行动:现实世界中的示例和应用程序 Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP和Python:代码示例和比较 PHP和Python:代码示例和比较 Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

See all articles