【问题标题】:Separation the table and each name follows the table分隔表格,每个名字跟在表格后面
【发布时间】:2022-01-27 13:18:16
【问题描述】:

我想在表上做不同,每个表都有一个服务名称不要再循环表相同的组名,每个组都有服务的名称

检查:https://i.ibb.co/NTnynGq/639.png


查看:Package.blade.php

<div class="pt-120 pb-120">
  <div class="container">
    <div class="row justify-content-center">
      <div class="col-lg-12">
        <div class="table-responsive--md">
          <div class="services-table w-100">
            <div class="service-group">
              <div class="card">
                @foreach($packages as $singlePackage)
                  <br>
                  <table class="table table-bordered style--two">
                    <thead>
                      <tr>
                        <th style="width:70%">
                          <span>Group Name : {{ $singlePackage->groups->name }}</span>
                        </th>
                        <th style="width:15%">
                          <span>@lang('Services Name')</span>
                        </th>
                        <th style="width:15%">
                          <span>@lang('Services Name')</span>
                        </th>
                        <th style="width:15%">
                          <span>@lang('Action')</span>
                        </th>
                      </tr>
                    </thead>
                    <tbody>
                      <tr class="block item">
                        <td class="word-break">{{ $singlePackage->name }}</td>
                        <td>
                          <span>{{ $singlePackage->delivery_time }}</span>
                        </td>
                        <td>
                          <span>{{ $singlePackage->price }}</span>
                        </td>
                        <td>
                          <span>{{ $singlePackage->price }}</span>
                        </td>
                      </tr>
                    </tbody>
                  </table>
                @endforeach
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

封装模型

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Package extends Model
{
    protected $guarded = ['id'];
       
    public function groups()
    {
        return $this->belongsTo(Group::class);
    }
}

PackageController.php

public function packages()
{
    $pageTitle = 'Packages';

    $packages = Package::where('status', 1)->with('groups')->paginate(getPaginate());
        
    return view('package',compact('pageTitle', 'packages'));
}

Want Separation 每组都有服务的名字

【问题讨论】:

    标签: php laravel database


    【解决方案1】:

    选项 1:您可以在查询中添加 ORDER BY group_id

    $packages = Package::where('status', 1)->with('groups')->orderBy('group_id')->paginate(getPaginate());
    

    选项2:可以在foreach中按组名排序

    @foreach($packages->sortBy(function ($item) { return $item->group->name; }) as $singlePackage)
    

    或

    @foreach($packages->sortBy(fn($item) => $item->group->name) as $singlePackage)
    

    选项 3:使用Collection 的groupBy 方法。

    <div class="card">
      @foreach($packages->groupBy(function ($item) { return $item->groups->name;  }) as $name => $group)
        <br>
        <table class="table table-bordered style--two">
          <thead>
            <tr>
              <th style="width:70%">
                <span>Group Name : {{ $name }}</span>
              </th>
              <th style="width:15%">
                <span>@lang('Services Name')</span>
              </th>
              <th style="width:15%">
                <span>@lang('Services Name')</span>
              </th>
              <th style="width:15%">
                <span>@lang('Action')</span>
              </th>
            </tr>
          </thead>
          <tbody>
            @foreach($group as $singlePackage)
              <tr class="block item">
                <td class="word-break">{{ $singlePackage->name }}</td>
                <td>
                  <span>{{ $singlePackage->delivery_time }}</span>
                </td>
                <td>
                  <span>{{ $singlePackage->price }}</span>
                </td>
                <td>
                  <span>{{ $singlePackage->price }}</span>
                </td>
              </tr>
            @endforeach
          </tbody>
        </table>
      @endforeach
    </div>
    

    【讨论】:

    • 那么你可能想要 groupBy
    • 非常感谢兄弟
    • 如果我需要为每个表做一个分页编号,比如表有 5 个,第二个表有 5 个,所以我想要第三个表 2 Paginate 可以做到吗?检查1:i.ibb.co/d2NFmxL/firstx.png,检查2:i.ibb.co/VD77fqY/2c.png
    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 2021-02-04
    • 2015-06-04
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多