How to use the "break" in the blade template?

0

I'm developing a modal checklist where new protocol data will be registered. Each attribute of the item will be informed by the user and this information will be registered to the checklist_protocolo table of the database.

But information such as the item description and the checklist template are queried from other database tables. The information of the model (table checklist_modelo ) I was able to load in the modal, but the information of the description of the item (table checklist_item ) I could not because it is iterate it inside the loop and the data are coming out duplicates.

How to solve this problem? Here are the images that illustrate the problem.

Modal Checklists

ModalChecklists[ERROR]-duplicatedata

ERTemplate<

Followthesnippetsofthecodesresponsibleforperformingthisfunctionality.

MethodeditofclassProjectController.php:

//MétodoqueredirecionaparaapáginadeeditaroProjetopublicfunctionedita($id,Request$request){$projetoCriado=Projeto::findOrFail($id);$this->flagStatusDoc=$projetoCriado->status_documentacao=='A'?true:false;$this->flagAprovacao=$projetoCriado->situacao_projeto=='AP'?true:false;$this->flagStatusPagamento=$projetoCriado->usu_auto_pag_id!=null&&$projetoCriado->dt_pag_autorizado!=null?true:false;$flagHabilitaEmenda=$projetoCriado->valor_interno==0?false:true;$flagHabilitaTabsFinanceiro=$projetoCriado->projeto_atividade_id==null&&$projetoCriado->elemento_despesa_id==null&&$projetoCriado->fonte_recurso_id==null&&$projetoCriado->dt_ordenador==null&&$projetoCriado->valor_ordenador==0?false:true;$usuarios=User::where('autoriza','=','S')->get();//armazenatodososusuáriosquetempermissãodeautorização(autoriza=S)$usuariosAtivos=User::all();//armazenatodososusuárioscadastradosnosistema$setores=Setor::all();$proponentes=Proponente::all();$tipoProjetos=TipoProjeto::all();$modalidadeApoios=ModalidadeApoio::all();$ocorrencias=DB::table('ocorrencias')->join('users','users.id','=','ocorrencias.usuario_id')->where('ocorrencias.projeto_id','=',$id)->select('ocorrencias.id','ocorrencias.origem','ocorrencias.tipo','users.name','ocorrencias.descricao','ocorrencias.dt_ocorrencia')->get();$categoriaInstrumentos=CategoriaInstrumento::all();$modalidadeLicitacoes=ModalidadeLicitacao::all();$historicoErratas=HistoricoErrata::where('projeto_id','=',$id)->get();$historicoNotificacoes=HistoricoNotificacao::where('projeto_id','=',$id)->get();$projetoAtividades=ProjetoAtividade::all();$elementoDespesas=ElementoDespesa::all();$fonteRecursos=FonteRecurso::all();$detalhamentoEmpenhos=DetalhamentoEmpenho::where('projeto_id','=',$id)->get();$detalhamentoLiquidacoes=DetalhamentoLiquidacao::where('projeto_id','=',$id)->get();$detalhamentoPagamentos=DetalhamentoPagamento::where('projeto_id','=',$id)->get();$detalhamentoEmendas=DetalhamentoEmenda::where('projeto_id','=',$id)->get();$localidades=Localidade::all();$localidadesAtivas=Localidade::where('ativo','=','S')->orderBy('localidade','asc')->get();$permissoesAprovacao=verificarPermissao('Aprovação');$permissoesJuridico=verificarPermissao('Juridico');$permissoesGestaoContrato=verificarPermissao('GestãoContratoseConvênios');$permissoesFinanceiro=verificarPermissao('Financeiro');$permissoesOcorrencia=verificarPermissao('Ocorrência');$permissoesAbas=verificarPermissao('AbasdoProjeto');$permissoesDadosGeraisProj=verificarPermissao('DadosGeraisdoProjeto');//Variáveisdafuncionalidade"Movimentar Projeto"
       $movimentacaoResponsavel = MovimentacaoResponsavel::where('projeto_id', '=',$id)->orderBy('dt_movimentacao','desc')->first();
       $usuarioDestino = empty($movimentacaoResponsavel) ? Auth::user() :  User::where('id','=', $movimentacaoResponsavel->usu_destino_id)->first(); 
       $usuarioResponsavel =   $usuarioDestino;

       $checklistsModelo = ChecklistModelo::all();
       $checklistsEstrutura = ChecklistEstrutura::all();

       $checklistsEstruturaModelo =  ChecklistModelo::whereIn('id', $checklistsEstrutura->pluck('modelo_id'))->get();


        $statusDocumentacao =  $projetoCriado->status_documentacao == 'P' ? 'Pendente' : 'Autorizado';
        $statusProjeto =  $projetoCriado->situacao_projeto;

        switch ($statusProjeto){
            case 'AA':
                $statusProjeto = 'Aguardando Autorização';

            break;
            case 'AP':
                $statusProjeto = 'Aprovado';
            break;
            case 'CS':
                $statusProjeto = 'Cancelado Suspenso';
            break;
            case 'RP':
                $statusProjeto = 'Reprovado';
            break;
            default:
                $statusProjeto = 'Aguardando Autorização';
            break;
            }

        $userAutorizaDoc = User::find($projetoCriado->usu_autoriza_doc_id); 
        $usuarioAutorizaDoc =  $userAutorizaDoc == null ?  'Indefinido' : $userAutorizaDoc->name ;

        $userAutorizaProjeto = User::find($projetoCriado->usu_situacao_id); 
        $usuarioAutorizaProjeto =   $userAutorizaProjeto == null ?  'Indefinido' : $userAutorizaProjeto->name ;

        $userAutorizaPagamento = User::find($projetoCriado->usu_auto_pag_id); 
        $usuarioAutorizaPagamento =   $userAutorizaPagamento == null ?  'Indefinido' : $userAutorizaPagamento->name ;

        $countLocalidadesProjeto = count(LocalidadeProjeto::where('projeto_id','=',$id)->distinct()->get());
        $localidadesProjeto = Localidade::join('localidades_projeto', function ($join) use ($id) {
                            $join->on('localidade.id','=','localidades_projeto.localidade_id')
                            ->where('localidades_projeto.projeto_id','=',  $id ); })->distinct()->get();  


        //Variáveis da aba de Aprovação
        $valorEmenda = DB::table('emendas_detalhes')
                    ->where('projeto_id', $id)
                    ->sum('valor');



       $valorAprovado = $valorEmenda + $projetoCriado->valor_aprovado_total;
       $checklistsItens = ChecklistItem::all();

       //Variáveis da aba de Financeiro
       $valorEmpenho = DB::table('detalhamento_empenho')
                    ->where('projeto_id', $id)
                    ->sum('valor_empenho');

       $valorLiquidacao = DB::table('detalhamento_liquidacao')
                    ->where('projeto_id', $id)
                    ->sum('valor_liquidacao');

       $valorPagamento = DB::table('detalhamento_pagamento')
                    ->where('projeto_id', $id)
                    ->sum('valor_pagamento');


       //Contador do Checklist de Protocolo
       $countChecklistProtocolo = count(ChecklistProtocolo::where('projeto_id','=', $id)->distinct()->get());  


       $checklistProtocolo =  ChecklistProtocolo::where('projeto_id','=', $id)->distinct()->get();

       $arrayChecklistProtocolo = [];
       $arrayChecklistProtocolo =  (array) array_values($checklistProtocolo->toArray());


       //Modelo do Protocolo
      $modelo = ChecklistModelo::where( 'id','=',$arrayChecklistProtocolo[0]['modelo_id'])->distinct()->get();
      $modeloProtocolo = (array) array_values($modelo->toArray());



      //Consulta de todos os 'id' de itens do modelo selecionado
      $itens_id = DB::table('checklist_estrutura')
      ->where('checklist_estrutura.modelo_id','=', $modeloProtocolo[0]['id'])
      ->select('checklist_estrutura.itens_id' )
      ->get();



      //Converte o conjunto de dados para Array
      $array_itens_id = (array) array_values($itens_id->toArray());

      $arrayIdItens = [];
      foreach ($array_itens_id  as $item) {
          $arrayIdItens[] = $item->itens_id;
      }

      //Consulta  de todos as descrições do itens (descricao_item) do modelo selecionado
      $array_descricao_item =  DB::table('checklist_itens')->whereIn('id',$arrayIdItens)->get();



      $arrayItens = [];
      $arrayItens =  (array) array_values($array_descricao_item->toArray());

    //dd($arrayItens);

   // dd($checklistProtocolo);

  /*   
     foreach ($checklistProtocolo as $chktProtocolo) {
              $protocolo =  new stdClass;
              $protocolo->projeto_id =  $arrayChecklistProtocolo ;
              $protocolo->modelo_id =  $modeloProtocolo[0]['id'];
              $protocolo->modelo_nome =  $modeloProtocolo[0]['modelo'] ;
              $protocolo->item =  $chktProtocolo->item;
              $protocolo->item_descricao_id = $chktProtocolo->item_descricao_id ;
              $protocolo->item_nome = "bffff";
              $protocolo->sim_nao = $chktProtocolo->sim_nao;
              $protocolo->nao_atende = $chktProtocolo->nao_atende ;
              $protocolo->dt_validade = $chktProtocolo->dt_validade ;
              $protocolo->pagina_documento = $chktProtocolo->pagina_documento ;
              $protocolo->observacao = $chktProtocolo->observacao ; 
    } */

    //  foreach ($array_descricao_item  as $itens) {  
  // dd($protocolo->projeto_id);




        return view('admin.projeto.edita', ['projeto' => Projeto::find($id), 'permissoesAprovacao' =>  $permissoesAprovacao, 'permissoesJuridico' => $permissoesJuridico,
                'permissoesGestaoContrato' =>  $permissoesGestaoContrato , 'permissoesFinanceiro' => $permissoesFinanceiro,
                'permissoesOcorrencia'=> $permissoesOcorrencia, 'permissoesDadosGeraisProj' => $permissoesDadosGeraisProj,
                'permissoesAbas' =>  $permissoesAbas, 'setores' => $setores, 'proponentes' => $proponentes, 'tipoProjetos' => $tipoProjetos, 'usuarios' => $usuarios, 'usuariosAtivos' => $usuariosAtivos,
                'localidades' => $localidades,'modalidadeApoios' => $modalidadeApoios, 'usuarioResponsavel'=>$usuarioResponsavel,'statusDocumentacao'=>$statusDocumentacao,
                'usuarioAutorizaDoc' => $usuarioAutorizaDoc,'localidadesAtivas'=> $localidadesAtivas,'flagHabilitaEmenda'=> $flagHabilitaEmenda, 'flagHabilitaTabsFinanceiro' => $flagHabilitaTabsFinanceiro,
                'flagStatusDoc' =>$this->flagStatusDoc, 'flagAprovacao' =>  $this->flagAprovacao, 'flagStatusPagamento' => $this->flagStatusPagamento,
                'countLocalidadesProjeto' =>  $countLocalidadesProjeto, 'localidadesProjeto' => $localidadesProjeto, 'statusProjeto' => $statusProjeto, 'usuarioAutorizaProjeto' =>  $usuarioAutorizaProjeto,
                'usuarioAutorizaPagamento' => $usuarioAutorizaPagamento, 'categoriaInstrumentos' => $categoriaInstrumentos, 'modalidadeLicitacoes' => $modalidadeLicitacoes,
                'historicoErratas' => $historicoErratas, 'historicoNotificacoes' =>    $historicoNotificacoes, 'checklistsEstruturaModelo' =>  $checklistsEstruturaModelo,
                'projetoAtividades' => $projetoAtividades, 'elementoDespesas' => $elementoDespesas, 'fonteRecursos' =>  $fonteRecursos,
                'detalhamentoEmpenhos' => $detalhamentoEmpenhos, 'detalhamentoLiquidacoes' => $detalhamentoLiquidacoes, 'detalhamentoPagamentos' => $detalhamentoPagamentos,
                'detalhamentoEmendas' =>  $detalhamentoEmendas , 'valorEmenda' => $valorEmenda, 'valorAprovado' =>  $valorAprovado, 'valorEmpenho' => $valorEmpenho,
                'valorLiquidacao' => $valorLiquidacao, 'valorPagamento' => $valorPagamento, 'ocorrencias' => $ocorrencias, 'countChecklistProtocolo' => $countChecklistProtocolo,
                'checklistsModelos' => $checklistsModelo, 'checklistsEstruturas' => $checklistsEstrutura, 'checklistsItens' =>  $checklistsItens,
                'checklistsProtocolos' => $checklistProtocolo,'arrayItens' => $arrayItens, 'modeloProtocolo' => $modeloProtocolo]);
     }

Edita.blade.php page: I tried to put the break variable in the conditional to get the item description name but an error occurred.

 <!--Inicio do modal de Checklist do Projeto--> 
  <div class="modal fade modal-default" id="modalChecklist" aria-hidden="true" aria-labelledby="examplePositionCenter"
                 role="dialog" tabindex="-1">
                <div class="modal-dialog2 modal-center">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">×</span>
                            </button>
                            <h4 class="modal-title">Checklists</h4>
                        </div>
                        <div class="form-group col-md-4">
                             <input type="hidden" id="idProjeto" name="idProjeto" value="{{$projeto->id}}">
                             <input type="hidden" id="idModeloProcesso" name="idModeloProcesso" value="{{$modeloProtocolo[0]['id']}}">
                             <label class="control-label">Modelo</label>
                            <input type="text" class="form-control" name="modeloProcesso" value="{{$modeloProtocolo[0]['modelo']}}" disabled>
                        </div>
                        <div class="modal-body">
                        <div class="form-group col-md-18">
                             <input type="hidden" id="idProjeto" name="idProjeto" value="{{$projeto->id}}">
                             <table id="checklist" class="table table-hover table-striped table-responsive toggle-arrow-tiny" >
                                <caption></caption>
                                    <thead>
                                        <tr>
                                            <th>Item</th> 
                                            <th>Descrição</th>
                                            <th>Sim/Não</th>
                                            <th>Não Atende</th>
                                            <th>Data de Validade</th>
                                            <th>Página do Documento</th>
                                            <th>Observações           </th>
                                            <th class="text-center"></th>
                                        </tr>
                                    </thead>
                                    <tbody id="bodyUsers">

                                @foreach($checklistsProtocolos as $checklistProtocolo)
                                 @foreach($arrayItens as $item) 
                                   <tr>
                                       <td><input type="text" class="form-control" name="item_protocolo" value="{{$checklistProtocolo->item}}"  size ="2"></td>
                                       <td>{{$item->id == $checklistProtocolo->item_descricao_id ? $item->descricao_item :  break }}</td>   


                                       <td><input type="checkbox" name="simNao_protocolo"{{$checklistProtocolo->sim_nao == null ? '' : 'checked'}}></td>
                                       <td><input type="checkbox" name="naoAtende_protocolo" {{$checklistProtocolo->nao_atende == null ? '' : 'checked'}} ></td>
                                       <td><input type="date" class="form-control" name="dtValidade_protocolo" value="{{$checklistProtocolo->dt_validade}}"></td>
                                       <td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->pagina_documento}}" size ="1"></td>
                                       <td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->observacao}}" size ="1"></td>

                                   </tr>
                                    @endforeach 
                                 @endforeach
                               </tbody>
                        </table>



                        </div>

                        </div><!--Fim do modal-body-->

                        <div class="modal-footer">
                        <center>
                            <a id="btnSalvarChecklist" type="button" class="btn btn-primary salvarChecklist" data-dismiss="modal"  align="center" style="width: 300px; height: 40px">Salvar</a>
                        </center>
                        </div>
                    </div>
                </div>
            </div>
  <!--Fim do modal do Checklist do Projeto-->      


AppServiceProvider.php class Home The break command is not supported in the Laravel version I am using, so within the boot() method of the AppServieProvider class I define the following function.

  

public function boot ()       {           Blade :: directive ('break', function () {return "";});       }



<?php

namespace App\Providers;
use Blade;
//use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
  /*   public function boot()
    {
        //
    } */
    public function boot()
    {
        Blade::directive('break', function() { return "<?php break; ?>"; });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

ERROR:, but the error shown in this image occurred.

    
asked by anonymous 08.11.2018 / 17:49

1 answer

0

I put it in response because it would not fit in the comment: so I understood, if you do not have the id it has to give the break, you do it like this:

@foreach($arrayItens as $item) 
    <tr>
      <td><input type="text" class="form-control" name="item_protocolo" value="{{$checklistProtocolo->item}}"  size ="2"></td>
      <td>{{$item->id == $checklistProtocolo->item_descricao_id ? $item->descricao_item :  break }}</td>   
      <td><input type="checkbox" name="simNao_protocolo"{{$checklistProtocolo->sim_nao == null ? '' : 'checked'}}></td>
      <td><input type="checkbox" name="naoAtende_protocolo" {{$checklistProtocolo->nao_atende == null ? '' : 'checked'}} ></td>
      <td><input type="date" class="form-control" name="dtValidade_protocolo" value="{{$checklistProtocolo->dt_validade}}"></td>
      <td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->pagina_documento}}" size ="1"></td>
      <td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->observacao}}" size ="1"></td>
  </tr>
@endforeach 

If so, would not it solve your problem?

@foreach($arrayItens as $item)
    @if($item->id != $checklistProtocolo->item_descricao_id)
        <?php break 1; ?>
    @endif
    <tr>
      <td><input type="text" class="form-control" name="item_protocolo" value="{{$checklistProtocolo->item}}"  size ="2"></td>
      <td>{{$item->descricao_item}}</td>   
      <td><input type="checkbox" name="simNao_protocolo"{{$checklistProtocolo->sim_nao == null ? '' : 'checked'}}></td>
      <td><input type="checkbox" name="naoAtende_protocolo" {{$checklistProtocolo->nao_atende == null ? '' : 'checked'}} ></td>
      <td><input type="date" class="form-control" name="dtValidade_protocolo" value="{{$checklistProtocolo->dt_validade}}"></td>
      <td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->pagina_documento}}" size ="1"></td>
      <td><input type="text" class="form-control" name="paginaDoc_protocolo" value="{{$checklistProtocolo->observacao}}" size ="1"></td>
  </tr>
@endforeach 
    
08.11.2018 / 18:49