好的,所以我试图获得使用集合的语法。 laravel文档和示例现在对我没有任何意义。没有人真正在谈论集合,所以:
我有两个表条目,一个用于区域,一个用于国家/地区。我希望能够按地区分组国家/地区,因此不会打印重复区域。在PHP中它是有道理的。但是在laravel中,我不知道他们的语法是如何工作的。
我想得到这样的东西:
A区
A区
等等
那么它是如何完成的?
这是我的控制者:
<?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'));
}
}
这是我的破旧刀片文件:
@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的建议:
然而它打印出来:
[{&#34; Region&#34;:&#34; Africa - North Africa&#34;,&#34; Country&#34;:&#34; Algeria&#34;},{&#34;地区&#34;:&#34;非洲 - 北非&#34;,&#34;国家&#34;:&#34;埃及&#34;},{&#34;地区&#34;:&#34;非洲 - 北非&#34;,#34;国家&#34;:&#34;利比亚&#34;},{&#34;地区&#34;:&#34;非洲 - 北非&#34;,& #34;国家&#34;:&#34;马里&#34;},{&#34;地区&#34;:&#34;非洲 - 北非&#34;,&#34;国家&#34;:& #34; Mauritania&#34;},{&#34; Region&#34;:&#34; Africa - North Africa&#34;,&#34; Country&#34;:&#34; Morocco&#34;}, {&#34;地区&#34;:&#34;非洲 - 北非&#34;,&#34;国家&#34;:&#34;尼日尔&#34;},{&#34;地区&#34; :&#34;非洲 - 北非&#34;,&#34;国家&#34;:&#34;突尼斯&#34;},{&#34;地区&#34;:&#34;非洲 - 北非& #34;,&#34;国家&#34;:&#34;西撒哈拉&#34;}]
请注意,这是一个类别,groupby正在运行,但它包括它所分组的对象。
数据库表如下所示:
答案 0 :(得分:1)
您需要做的是使用集合函数groupBy
:
$infos = DB::table('list_countries')
->select('Region', 'Country')
->get()
->groupBy('Region')
->toArray();