Ir para conteúdo
Fórum Script Brasil
  • 0

Uma maneira elegante de mostrar detalhes do grupo


Frank K Hosaka

Pergunta

Eu tenho a tabela pedidos com datas e o número do pedido. Eu queria agrupar o número dos pedidos por data.

Eu fiz uma bela gambiarra, misturando a gramática do Laravel com a gramática do PHP. Funcionou, mas eu pedi ajuda no Laracasts.

A solução do Lary é muito mais elegante que a minha. Só que apareceu um outro colaborador, propondo resolver tudo na base das Collections. Os Collections não funcionaram comigo, mas a mensagem do Lary desapareceu. O Lary é a Inteligência Artificial do Laracasts. O problema do Laracasts é que não dá para editar o Post, mas o Lary conseguiu até excluir! Que coisa!

Mesmo assim, eu consegui adaptar a sugestão do Lary no meu código que ficou assim:

Model tbpedido.php

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class tbpedido extends Model {
    use HasFactory;
    protected $table="tbpedido";
    public function details() {return $this->hasMany(tbpedido::class,'dia','dia');}
}

--------------------------
PedidoController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\tbpedido;
class PedidoController extends Controller {
    public function group(){
        $groups=tbpedido::groupBy('dia')->select('dia')->get();
        $details=tbpedido::with('details')->get();
        return view('groups',compact('groups','details')); }
}

-----------------------------
groups.blade.php

<table><th>Dia<th>Pedido
@foreach($groups as $group)
<tr><td>{{$group->dia}}
    @foreach($group->details as $detail)
        <td>{{$detail->ped}}
    @endforeach
@endforeach
</table>


A minha solução também funciona, mas vou morrer de vergonha se eu publicar aqui.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...