laravel - Laravel:是否可以直接从书籍集合中获取所有作者而无需循环?
问题描述
我一直在尝试从书籍集中获取所有作者。
$books = Books::all();
foreach($books as $book){ $book->author ...
这段代码可以工作,但我想在不使用循环的情况下获得所有作者
$allAuthorsThruBooks = Books::someQueryMaybe();
$allAuthorsThruBooks 将显示作者列表。
谢谢!
解决方案
方法01
尝试 采摘
$authorList = collect($books)->pluck('author')->unique();
// use ->toArray() if you want to convert into array
方法02
创建助手
namespace App\Helpers;
use Illuminate\Support\Arr;
class ArrHelper
{
public static function onlyValues($array = [], $keys = [])
{
return array_filter(
array_values(
Arr::only($array, $keys)
)
);
}
}
在控制器中
$authorList = collect(ArrHelper::onlyValues($books, ['author']));
推荐阅读
- node.js - 如何在不获取的情况下获取路由的 json
- angular - 将选定的 ID 从组件传递到另一个组件
- firewall - fail2ban:如果一行匹配failregex 和ignoreregex,哪一个优先?
- javascript - Jquery滚动动画滚动到div的底部而不是顶部
- excel - 修改代码以在创建新行时复制隐藏单元格中的公式
- sql - Jpql查询提取数组值
- javascript - 突出显示 HTML 中的特定单词
- wordpress - Wordpress 默认目录更改
- javascript - 我的下拉列表选择 onchange 没有在 Angular js 中触发
- angular - 量角器无法检测元素