1
Hello, I’m developing a Course Registration in Laravel 5.2. I created CRUD perfectly, it creates, edits and deletes everything right, but in this register has 3 items that are of type CHECKBOX, I can register and save in the bank (Mysql) correctly, but if you need to make an edition in the course, CHECKBOX are unchecked, I need them selected. Could someone help me or give me a hint as to how I can do this ?
Cursoscontroller.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Curso;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Redirect;
use App\Http\Controllers\Controller;
class CursosController extends Controller
{
//Função Principal da Controller
public function index()
{
return view('cursos.index');
}
//Função para Listagem de Cursos
public function listar()
{
Session::put('curso_search', Input::has('ok') ? Input::get('search') : (Session::has('curso_search') ? Session::get('curso_search') : ''));
Session::put('curso_field', Input::has('field') ? Input::get('field') : (Session::has('curso_field') ? Session::get('curso_field') : 'nomeCurso'));
Session::put('curso_sort', Input::has('sort') ? Input::get('sort') : (Session::has('curso_sort') ? Session::get('curso_sort') : 'asc'));
$cursos = Curso::where('nomeCurso', 'like', '%' . Session::get('curso_search') . '%')
->orderBy(Session::get('curso_field'),
Session::get('curso_sort'))->paginate(15);
return view('cursos.list', ['cursos' => $cursos]);
}
//Função para Criação de Cursos
public function create(){
return view('cursos.formulario');
}
//Função para Salvar o novo Curso
public function store(Request $request){
//Instaciamento da model Curso;
$curso = new Curso();
//Solicitação de requisições para salvar as informações no BD(Foreign Key)
$curso->user_id = auth()->user()->id;
$curso->mantenedora_id = auth()->user()->mantenedora_id;
//Solicitação de requisições para salvar as informações no BD;
$area_competencia = implode(", " , $request->get('area_competencia'));
$curso->area_competencia = $area_competencia;
$curso->nomeProvincia = $request->get('nomeProvincia');
$nomeMantenedora = implode(', ', $request->get('nomeMantenedora'));
$curso->nomeMantenedora = $nomeMantenedora;
$curso->nomeCurso = $request->get('nomeCurso');
$curso->formatoCurso = $request->get('formatoCurso');
$curso->validacao = $request->get('validacao');
$curso->AvalParticipante = $request->get('AvalParticipante');
$curso->cargaHoraria = $request->get('cargaHoraria');
$curso->nivelEstrategico = $request->get('nivelEstrategico');
$curso->periodicidadeCurso = $request->get('periodicidadeCurso');
$curso->tpoCurso = $request->get('tpoCurso');
$curso->nomeResponsavel = $request->get('nomeResponsavel');
$curso->telefoneResponsavel = $request->get('telefoneResponsavel');
$curso->emailResponsavel = $request->get('emailResponsavel');
$curso->desenvolvimentoCurso = $request->get('desenvolvimentoCurso');
$curso->composicaoCurso = $request->get('composicaoCurso');
$curso->public_alvo = $request->get('public_alvo');
$curso->rquestoCurso = $request->get('rquestoCurso');
$curso->DescricaoCurso = $request->get('DescricaoCurso');
$curso->OutrasInf = $request->get('OutrasInf');
//Comando para salvar no BD
$curso->save();
//Fachada da Mensagem de Sucesso
Session::flash('msg_sucesso','Curso cadastrado com sucesso!');
//Retorna para o formulário
return view('cursos.formulario');
}
//Função para ver o relatório do curso cadastrado de acordo com id;
public function report($idCurso)
{
$curso = Curso::find($idCurso);
//Se estiver tudo ok, retorna a view de update;
return view('cursos.report', compact('curso'));
}
//Função para EDITAR dados do curso cadastrado;
public function edit($id)
{
//Variável para localizar o ID do Curso.
$curso = Curso::find($id);
return view('cursos.formulario', ['curso' => $curso]);
}
public function update($id, Request $request){
$curso = Curso::findOrFail($id);
$area_competencia = implode(", " , $request->get('area_competencia'));
$curso->area_competencia = $area_competencia;
$curso->nomeProvincia = $request->get('nomeProvincia');
// $nomeProvincia = implode(', ', $request->get('nomeProvincia'));
// $curso->nomeProvincia = $nomeProvincia;
$curso->nomeMantenedora = $request->get('nomeMantenedora');
// $nomeMantenedora = implode(', ', $request->get('nomeMantenedora'));
// $curso->nomeMantenedora = $nomeMantenedora;
$curso->nomeCurso = $request->get('nomeCurso');
$curso->formatoCurso = $request->get('formatoCurso');
$curso->validacao = $request->get('validacao');
$curso->AvalParticipante = $request->get('AvalParticipante');
$curso->cargaHoraria = $request->get('cargaHoraria');
$curso->nivelEstrategico = $request->get('nivelEstrategico');
$curso->periodicidadeCurso = $request->get('periodicidadeCurso');
$curso->tpoCurso = $request->get('tpoCurso');
$curso->nomeResponsavel = $request->get('nomeResponsavel');
$curso->telefoneResponsavel = $request->get('telefoneResponsavel');
$curso->emailResponsavel = $request->get('emailResponsavel');
$curso->desenvolvimentoCurso = $request->get('desenvolvimentoCurso');
$curso->composicaoCurso = $request->get('composicaoCurso');
$curso->public_alvo = $request->get('public_alvo');
$curso->rquestoCurso = $request->get('rquestoCurso');
$curso->DescricaoCurso = $request->get('DescricaoCurso');
$curso->OutrasInf = $request->get('OutrasInf');
$curso->save();
Session::flash('msg_edit_sucesso','Curso atualizado com sucesso!');
return Redirect::to('cursos/'.$curso->id.'/editarcurso');
}
//Função para Excluir Curso
public function destroy($id)
{
//Variável para localizar o ID do Curso, se não encontrar retorna erro;
$curso = Curso::find($id);
//Variável de deleção do ID;
$curso->delete($id);
Session::flash('msg_del_sucesso','Curso excluído com sucesso!');
return Redirect::to('/cursos');
}
}
model Curso.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Curso extends Model
{
public $fillable = ['nomeCurso','description'];
public function Provicia(){
return $this->belongsTo(Provincia::class);
}
public function Mantenedora(){
return $this->belongsTo(Mantenedora::class);
}
}
View formulario.blade.php
@extends('layouts.app')
@section('main-content')
@if(Session::has('msg_sucesso'))
<div class="alert alert-success alert-dismissible" role="alert">
{{Session::get('msg_sucesso')}}
</div>
@endif
<div class="box box-primary">
<div class="box-header">
<h2 class="box-title">Cadastro de Cursos e Atividade Formativas</h2>
</div>
<div class="box-body">
<!-- Abertura do Formulário -->
@if(Request::is('*/editarcurso'))
@section('htmlheader_title')
Editar Curso
@endsection
{!! Form::model($curso, ['method' => 'PATCH' , 'url' => 'cursos/'.$curso->id.'editarcurso']) !!}
@if(Session::has('msg_edit_sucesso'))
<div class="alert alert-success alert-dismissible" role="alert">
{{Session::get('msg_edit_sucesso')}}
</div>
@endif
@else
{!! Form::open(array('url' => 'cursos/salvar')) !!}
@section('htmlheader_title')
Novo Curso
@endsection
@endif
<br>
<div class="col-md-12" style="margin-bottom:20px">
<legend>1 - Dados da Atividade Formativa</legend>
<!--Campo Nome do Curso-->
<div class="col-md-12" style="margin-bottom:18px">
{!! Form::label('nomeCurso', '1.1 - Curso / Atividade Formativa*') !!} <a type="button" data-toggle="modal" data-target="#nomeModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::input('text', 'nomeCurso', null, ['class' => 'form-control', 'required' =>'required','autofocus', 'placeholder' =>'Digite o nome do Curso/Atividade Formativa']) !!}
</div>
<!--Campo Carga Horária-->
<div class="col-md-6">
{!! Form::label('cargaHoraria', '1.2 - Carga horária') !!} <a type="button" data-toggle="modal" data-target="#cargaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::input('int', 'cargaHoraria', null, ['class' => 'form-control' ,'autofocus', 'placeholder' => 'Digite a carga horária em horas.']) !!}
<br>
<!--Campo Validacao -->
{!! Form::label('validacao', '1.3 - Validação') !!} <a type="button" data-toggle="modal" data-target="#validacaoModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::select('validacao', array('Não há'=>'Não há','Diploma'=>'Diploma', 'Certificado'=>'Certificado', 'Declaração'=>'Declaração', 'Outro documento'=>'Outro documento'), null, [ 'class' => 'form-control', 'autofocus','placeholder' => 'Validação do Curso/Atividade Formativa'])!!}
<br>
<!--Campo Avaliação de Participante-->
{!! Form::label('AvalParticipante', '1.4 - Existe avaliação dos participantes?') !!}
{!!Form::select('AvalParticipante', array('Sim'=>'Sim','Não'=>'Não'), null, [ 'class' => 'form-control', 'autofocus','placeholder' => 'Avaliação dos participantes'])!!}
<br>
{!! Form::label('periodicidadeCurso', '1.5 - Periodicidade') !!} <a type="button" data-toggle="modal" data-target="#periodicidadeModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!!Form::select('periodicidadeCurso', array('Mensal'=>'Mensal', 'Bimestral'=>'Bimestral', 'Semestral'=>'Semestral', 'Anual'=>'Anual', 'Bienal'=>'Bienal', 'Trienal'=>'Trienal'), null, [ 'class' => 'form-control', 'autofocus','placeholder' => 'Escolha a periodicidade do Curso/Atividade Formativa'])!!}
<br>
{!! Form::label('tpoCurso', '1.6 - Tipo de Curso / Atividade Formativa* ') !!} <a type="button" data-toggle="modal" data-target="#tpoModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!!Form::select('tpoCurso', array('Presencial'=>'Presencial', 'A distância'=>'A distância', 'Ambos'=>'Ambos'), null, [ 'class' => 'form-control', 'autofocus','required' =>'required','placeholder' => 'Escolha o tipo de Curso/Atividade Formativa'])!!}
<br>
{!! Form::label('nivelEstrategico', '1.7 - Nível Estratégico') !!}
<a type="button" data-toggle="modal" data-target="#nivelModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!!Form::select('nivelEstrategico', array('Tático'=>'Tático','Estratégico'=>'Estratégico','Ambos'=>'Ambos'), null, [ 'class' => 'form-control', 'autofocus','placeholder' => 'Escolha o nível estratégico do Curso/Atividade Formativa', 'style' => ''])!!}
<br>
{!! Form::label('formatoCurso', '1.8 - Formato') !!}
<a type="button" data-toggle="modal" data-target="#formatoModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::select('formatoCurso', array('Curso'=>'Curso','Treinamento'=>'Treinamento','Capacitação'=>'Capacitação','Formação'=>'Formação','Programa'=>'Programa','Retiro'=>'Retiro', 'Treinamento'=>'Treinamento', 'Seminário'=>'Seminário', 'Encontro'=>'Encontro'), null, [ 'class' => 'form-control', 'autofocus','placeholder' => 'Escolha o formato do Curso/Atividade Formativa'])!!}
</div>
<div class="col-md-6" style="margin-bottom:15px">
{!! Form::label('area_competencia', '1.9 - Área de Competência') !!} <a type="button" data-toggle="modal" data-target="#categoriaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
<br>
<input type="checkbox" name="area_competencia[]" value="Comunicação"> Comunicação<br>
<input type="checkbox" name="area_competencia[]" value="Foco no resultado (na Missão)"> Foco no resultado (na Missão)<br>
<input type="checkbox" name="area_competencia[]" value="Gestão de Pessoas" > Gestão de Pessoas<br>
<input type="checkbox" name="area_competencia[]" value="Identidade Marista"> Identidade Marista<br>
<input type="checkbox" name="area_competencia[]" value="Inovação"> Inovação<br>
<input type="checkbox" name="area_competencia[]" value="Visão Estratégica"> Visão Estratégica<br>
<br>
{!! Form::label('nomeProvincia', '1.10 - Curso vinculado a* ') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
<br>
@foreach (App\Provincia::all() as $provincia)
<input type="checkbox" value="{{ $provincia->sigla_provincia }}"> {{ $provincia->sigla_provincia }} - {{ $provincia->nomeProvincia }} <br>
@endforeach
<br>
<br>
{!! Form::label('nomeMantenedora', '1.11 - Curso vinculado a qual mantenedora?*') !!} <a type="button" data-toggle="modal" data-target="#mantModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
<br>
@foreach (App\Mantenedora::all() as $mantenedora)
<input type="checkbox" name="nomeMantenedora[]" value="{{ $mantenedora->sigla_mantenedora }}"> {{ $mantenedora->sigla_mantenedora }} - {{ $mantenedora->nome_mantenedora }} <br>
@endforeach
</div>
<div class="col-md-12">
<legend>2 - Dados do Responsável pela Atividade Formativa</legend>
<!--Campo Nome da Responsável -->
<div class="col-md-12" style="margin-bottom:15px">
{!! Form::label('nomeResponsavel', '2.1 - Nome do Responsável* ') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::input('text', 'nomeResponsavel', null, ['class' => 'form-control', 'autofocus', 'placeholder' =>'Digite o nome do Responsável pelo Curso / Atividade Formativa', 'required' =>'required']) !!}
</div>
<!--Campo Telefone do Responsável -->
<div class="col-md-6" style="margin-bottom:15px">
{!! Form::label('telefoneResponsavel', '2.2 - Telefone do responsável* ') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::input('text', 'telefoneResponsavel', null, ['class' => 'form-control', 'autofocus', 'placeholder' =>'Digite o telefone do Responsável pelo Curso / Atividade Formativa', 'required' =>'required', 'type' => 'phone' , 'required' =>'required']) !!}
</div>
<!--Campo Email do Responsável -->
<div class="col-md-6" style="margin-bottom:15px">
{!! Form::label('emailResponsavel', '2.3 - E-mail do responsável*') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::input('text', 'emailResponsavel', null, ['class' => 'form-control', 'autofocus', 'placeholder' =>'Digite o email do Responsável pelo Curso / Atividade Formativa' , 'required' =>'required','type'=>'email' ]) !!}
</div>
<!--Campo Desenvolvimento do curso -->
<div class="col-md-6" style="margin-bottom:15px">
{!! Form::label('desenvolvimentoCurso', '2.4 - Desenvolvimento do Curso / Atividade Formativa') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
<select class="form-control" name="desenvolvimentoCurso" id="desenvolvimentoCurso">
<option value="" disabled selected>Selecione a modalidade de desenvolvimento</option>
<option value="Externo" >Externo</option>
<option value="Interno" onchange="alert('teste");">Interno</option>
</select>
</div>
<!--Campo composição do curso -->
<div class="col-md-6" style="margin-bottom:15px">
{!! Form::label('composicaoCurso', '2.5 - Composição da Equipe Responsável ') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!!Form::select('composicaoCurso', array('Irmãos'=>'Irmãos', 'Leigos'=>'Leigos', 'Ambos'=>'Ambos'), null, [ 'class' => 'form-control', 'autofocus','placeholder' => 'Selecione a composição do Curso / Atividade Formativa'])!!}
</div>
</div>
<!--Campo Descrição do Curso -->
<legend>3 - Outras Informações</legend>
<div class="col-md-12">
<div class="col-md-6">
<!--Campo outras informaçoes sobre o curso -->
{!! Form::label('rquestoCurso', '3.1 - Pré-requisitos') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::textarea('rquestoCurso', null, ['class' => 'form-control', 'autofocus', 'placeholder' =>'Caso haja pré-requisitos para o Curso / Atividade Formativa, descreva-os.', 'size' => '30x5']) !!}
</div>
<div class="col-md-6">
<!--Campo outras informaçoes sobre o curso -->
{!! Form::label('public_alvo', '3.2 - Público Alvo') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::textarea('public_alvo', null, ['class' => 'form-control', 'autofocus', 'placeholder' =>'Digite o público que se deseja atingir com o Curso / Atividade Formativa.', 'size' => '30x5']) !!}
<br>
</div>
</div>
<div class="col-md-12">
{!! Form::label('DescricaoCurso', '3.3 - Descrição do Curso / Atividade Formativa') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::textarea('DescricaoCurso', null, ['class' => 'form-control', 'autofocus', 'placeholder' =>'Escreva uma breve descrição sobre o curso e/ ou atividade formativa.', 'size' => '30x5']) !!}
<br/>
<!--Campo outras informaçoes sobre o curso -->
{!! Form::label('OutrasInf', '3.4 - Outras Informações ') !!} <a type="button" data-toggle="modal" data-target="#provinciaModal" ><i class="fa fa-info-circle" aria-hidden="true"></i></a>
{!! Form::textarea('OutrasInf', null, ['class' => 'form-control', 'autofocus', 'placeholder' =>'Digite outras informações que julgue necessárias sobre o curso e/ ou atividade formativa.', 'size' => '30x5']) !!}
<br>
<div class="col-md-10" style="margin-bottom:50px">
{!! Form::submit('Salvar', ['class' => 'btn btn-primary']) !!}
{!! Form::reset('Limpar formulário', ['class' => 'btn btn-default']) !!}
</div>
</div>
{!! Form::close() !!}
</div>
</div>
</div>
@include('cursos.modals')
@endsection
Try to add that to your
input
changing the string you search for in each, I’m not sure if it works because I have no way to test here,{{ strpos($curso->area_competencia, "Comunicação") === false ? "" || "checked='checked'" }}
– Augusto
I would have to make that change in the view ? <input type="checkbox" name="area_competencia[]" value="Communication" {{ strpos($curso->area_competencia, "Communication") === false ? "" || " checked='checked'" }} > Communication would look like this?
– Lucas Rodrigues
Yes, that’s right. If the
||
not working exchange for:
– Augusto
It didn’t work either!
– Lucas Rodrigues
But from some mistake or just not marked ? If it is not giving error it may be some problem with accentuation, so it does not find the string, if it is not PHP error try with a string without accent to test.
– Augusto
Errorexception in 07517a794f0be852a83aa9b14ac0dd3659f0085a.php line 65: Trying to get Property of non-object (View: /var/www/html/sig_homologation/Resources/views/courses/list.blade.php)
– Lucas Rodrigues
This error appears there.
– Lucas Rodrigues
But this error is in the file list.blade.php and what you show the code is from the form.blade.php, in list.blade.php for what I saw, the name of the variable is
$cursos
and in the form is$curso
, you changed it when you used it in the list ?– Augusto
No, I hadn’t even noticed that rsrs. I’ll check now
– Lucas Rodrigues