php - Laravel 使用集合对重复的表条目进行分组

标签 php mysql collections laravel-5 group-by

好的,所以我正在尝试获取使用集合的语法。 laravel 文档和示例现在对我来说毫无意义。没有人真正谈论集合,所以:

我有两个表条目,一个用于区域,一个用于国家。我希望能够执行诸如按地区对国家/地区进行分组之类的操作,这样就不会打印重复的地区。在 php 中这是有道理的。但在 laravel 中,我不明白它们的语法是如何工作的。

我想要得到这样的东西:

A区

  • A 国
  • B 国
  • C 国

A区

  • A 国
  • B 国

等等等等

那么它是如何完成的呢?

这是我的 Controller :

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;

class SortController extends Controller
{

    public function index(){
        $infos = DB::table('list_countries')
            ->select('Region', 'Country')
            ->groupBy('Region')
            ->get();

       // $sorts = DB::table('list_countries')->get();
        return view('Sort', compact('infos'));
    }
}

这是我的破旧 Blade 文件:

@extends('layout')


@section('content')
    <h1>Hello</h1>
                @extends('layout')


@section('content')
    <h1>Hello</h1>
                @foreach($infos as $sort)

                    <div class="checkbox">
                        <label>
                            {!! Form::checkbox('agree', 'yes') !!} {{ $sort }}
                        </label>
                    </div>
                @endforeach
@stop

测试@Ray Cheng 的建议是否有效:

但是它打印出这个:

[{"地区":"非洲 - 北非","国家":" Algolia "},{"地区":"非洲 - 北非","国家":"埃及"},{"地区":"非洲 - 北非","国家":"利比亚"},{"地区":"非洲 - 北非","国家":"马里"},{"地区":"非洲 - 北非", "国家":"毛里塔尼亚"},{"地区":"非洲 - 北非","国家":"摩洛哥"},{"地区":"非洲 - 北非","国家":"尼日尔"} ,{"Region":"非洲 - 北非","Country":"突尼斯"},{"Region":"非洲 - 北非","Country":"西撒哈拉"}]

请注意,这是一个类别,groupby 正在工作,但它包括分组所依据的对象。

数据库表如下所示:

Database tables

最佳答案

你需要做的是使用集合函数groupBy:

$infos = DB::table('list_countries')
        ->select('Region', 'Country')
        ->get()
        ->groupBy('Region')
        ->toArray();

关于php - Laravel 使用集合对重复的表条目进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39909081/

相关文章:

javascript - 使用 JavaScript/php 的下一个上一个函数

php - typo3 网站爬虫没有索引

php - 如何关闭特定mysql/php函数的错误

mysql - 从MySQL中的多点数据类型获取点数组(lat,lng)

mysql - 对于 "trashed"的对象,合适的表设计是什么

vb.net - 我可以在迭代(使用 For Each)时安全地修改 VB 集合的项目吗?

php - 从 Python 到 PHP 的 GREP 函数

c# - 命名参数顺序对 MySql .Net 数据提供程序有意义吗?

java - 从另一个对象列表创建对象元素的列表

collections - 将一个元素放在集合的尾部