Laravel Checkbox Recording/Editing 5.2

Asked

Viewed 374 times

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'" }}

  • 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?

  • Yes, that’s right. If the || not working exchange for :

  • It didn’t work either!

  • 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.

  • 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)

  • This error appears there.

  • 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 ?

  • No, I hadn’t even noticed that rsrs. I’ll check now

Show 4 more comments
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.