0
Context:
I want to carry the models of Template Checklist in the combo, but only those that are not in the database table checklist_structure. In this case, only the Catu model would be loaded, because it is not registered in the table checklist_structure. How to solve this problem?
Model ER:
Query of checklist_template data
Query of checklist_structure data (does not have model 'Catu' = 8)
Checkliststructurecontroller.php controller contains the new method(): responsible for loading the model combo.
//Este método apresenta o formulário para cadastrar um novo checklists de estruturas
public function novo()
{
// $checklistEstrutura = ChecklistEstrutura::all();
$checklistModelo = ChecklistModelo::all();
$checklistEstrutura = DB::table('checklist_estrutura')
->join('checklist_modelo', 'checklist_modelo.id', '=', 'checklist_estrutura.modelo_id')
->join('checklist_itens', 'checklist_itens.id', '=', 'checklist_estrutura.itens_id')
->select('checklist_estrutura.modelo_id', 'checklist_modelo.modelo', 'checklist_modelo.ativo')
->groupBy('checklist_estrutura.estrutura_id', 'checklist_estrutura.modelo_id')
->distinct()
->get();
//testando a variável $checklistModelo
$checklistModelo = ChecklistModelo::where('id','<>', $checklistEstrutura->modelo_id);
$checklistItem = ChecklistItem::all();
return view('admin.checklistEstrutura.novo',['checklistsEstruturas' => $checklistEstrutura, 'checklistsModelos' => $checklistModelo,
'checklistsItens' => $checklistItem]);
}
I tried to do the filtering that way
$checklistModel = Checklisttemplate::Where('id','<>', $checklistEstrutura->modelo_id);
But the following error occurred:
Property [modelo_id] does not exist on this Collection instance.
if you want to continue giving the Get simply do the following: after you search the checklisttemplate check if it exists:
if(isset($checklistModelo[0]->modelo_id)){ 
$checklistItem = ChecklistItem::all();
return view('admin.checklistEstrutura.novo',['checklistsEstruturas' => $checklistEstrutura, 'checklistsModelos' => $checklistModelo,
 'checklistsItens' => $checklistItem]);
 }else{
 return back()->withErrors(['Error'=>'Não foi possível realizar a busca!' ]);
}
remembering that in this case you will need to use a foreach on Blade– Alvaro Alves
Thank you for the reply.
– Ruama