laravel 5.5, multiple drivers in one or more views?

5

Greetings wherever you are on that side of the receiver, I have weeks learning about this giant that is laravel (5.5), I have a system to develop during my degree work, but I have a big failure, I can not find or not how to pass the methods of two related tables (1-1), each with its controller to a specific view, if you could help me I would be greatly grateful, then the codes ...

**las rutas**
<?php

use App\Institucion;

Route::get('/', function () 
    {
        return view('index');
    });
Route::get('/instituciones','InstitucionesController@index');
Route::get('/instituciones/agregar','InstitucionesController@agregar');
Route::post('/instituciones','InstitucionesController@store');
Route::get('/instituciones/{id}','InstitucionesController@show')
    ->where('id','[0-9]+');
Route::get('/estudios/agregar','CasosEstudiosController@agregar');
Route::post('/estudios','CasosEstudiosController@store');
Route::get('/estudios/{id}','CasosEstudiosController@show')
    ->where('id','[0-9]+');




**controlador de la tabla instituciones**
    <?php

namespace App\Http\Controllers;


use App\Http\Requests\InstitucionRequest;

use App\Institucion;
use App\CasoEstudio;
use Illuminate\Http\Request;

class InstitucionesController extends Controller
{
    public function index()
    {
      $instituciones = Institucion::all();
      return view('instituciones/index',['instituciones'=>$instituciones]);
    }
    public function agregar()
    {
      $instituciones = Institucion::all();
      return view('instituciones/agregar', compact('instituciones'));
    }
    public function store()
    {
      request()->validate([
        'nom'=>'required',
        'rif'=>'required',
        'naturaleza'=>'',
        'email'=>'required',
        'tlf1'=>'required',
        'tlf2'=>'required',
        'tlf3'=>'required',
        'direccion'=>'required',
      ]);
      Institucion::create(request()->all());
      return redirect('instituciones');
    }
    public function show($id)
    {      
      $institucion = Institucion::find($id);
      return view('instituciones/show',['institucion'=>$institucion]);
    }
}

**controlador de la tabla casos_estudios**
<?php

namespace App\Http\Controllers;

use App\Http\Requests\InstitucionRequest;
use App\Http\Requests\CasoEstudioRequest;

use App\Institucion;
use App\CasoEstudio;
use Illuminate\Http\Request;

class CasosEstudiosController extends Controller
{
    public function agregar()
    {
      $casos_estudios = CasoEstudio::all();
      return view('/estudios/agregar', compact('casos_estudios'));
    public function store()
    {
        request()->validate([
        'fec_envio' => 'request',
        'fec_respuesta' => 'request',
        'num_entrega' => 'request',
        'num_oficio_siss' => 'request',
        'num_exp_supervision' => 'request',
      ]);
      CasoEstudio::create(request()->all());
      return redirect('instituciones');
    }
    public function show($id)
    {
      $caso_estudio = CasoEstudio::find($id);
      return view('estudios/show',['caso_estudio'=>$caso_estudio]);
    }
}

**la vista :( **

{{-- DATOS DE UNA INSTITUCION EN PARTICULAR --}}

@extends('layouts.main')

@section('title')

    {{ $institucion -> nom}}

@endsection

@section('content')
<!-- Breadcrumbs-->
    <ol class="breadcrumb">
        <li class="breadcrumb-item">
            <a href={{asset("/")}}>Inicio</a>
        </li>
        <li class="breadcrumb-item active">
            <a href={{asset("/instituciones")}}>Instituciones</a>
        </li>
        <li class="breadcrumb-item active">
            <a href={{asset("/instituciones/{$institucion->id}")}}>{{$institucion->nom}}</a>
        </li>
    </ol>

<ul class="nav nav-tabs">
  <li class="nav-item">
    <a class="nav-link active show" data-toggle="tab" href="#Perfil">Perfil</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#Estudio">Estudio</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" data-toggle="tab" href="#Seguimiento">Seguimiento</a>
  </li>
  <li class="nav-item dropdown">
    <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Archivos</a>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#">01</a>
      <a class="dropdown-item" href="#">02</a>
      <a class="dropdown-item" href="#">03</a>
    </div>
  </li>
</ul>
 {{-- pestaña 1 --}}
<div id="myTabContent" class="tab-content">
  <div class="tab-pane fade active show" id="Perfil">
    <ul class="list-group">
        <li class="list-group-item d-flex justify-content-between align-items-center">
          Acronimo:<br>{{$institucion -> acronimo}}
        </li>
        <li class="list-group-item d-flex justify-content-between align-items-center">
          Nombre:<br>{{$institucion -> nom}}
        </li>
        <li class="list-group-item d-flex justify-content-between align-items-center">
          RiF:<br>G-{{$institucion -> rif}}
        </li>
        <li class="list-group-item d-flex justify-content-between align-items-center">
          Naturaleza:<br>{{$institucion -> naturaleza}}
        </li>
    </ul>
  </div>

 {{-- pestaña 2 --}}
  <div class="tab-pane fade" id="Estudio">
    <form action="{{asset("/estudios")}}" method="get" role="form">

      @if( empty($institucion['caso_estudio_id'] ))
        {{ csrf_field() }}
{{--         <button type="submit" class="btn btn-danger">
        Agregar Caso de Estudio</button> --}}


    <div class="container-fluid">
       <div class="panel panel-danger">
            <div class="panel-body">
                <form action="{{asset("/estudios")}}" method="post" role="form">
                    {{ csrf_field() }}
                    <legend>Agregar el caso de estudio</legend>

                    @include('layouts._validation-errors')


                    <div class="form-group">
                        <label>Fecha de envio</label>
                        <input name="fec_envio" value="{{old('fec_envio')}}" class="form-control" type="number" placeholder="Indique Fecha de envio">
                    </div>
                    <div class="form-group">
                        <label>Fecha de respuesta</label>
                        <input name="fec_respuesta" value="{{old('fec_respuesta')}}" class="form-control" type="number" placeholder="Indique Fecha de respuesta">
                    </div>
                    <div class="form-group">
                        <label>Nº Entrega</label>
                        <input name="num_entrega" value="{{old('num_entrega')}}" class="form-control" type="number" placeholder="Nº Entrega">
                    </div>
                    <div class="form-group">
                        <label>Nº Oficio SiSS</label>
                        <input name="num_oficio_siss" value="{{old('num_oficio_siss')}}" class="form-control" type="number" placeholder="Nº Oficio SiSS">
                    </div>
                    <div class="form-group">
                        <label>Nº Expediente de Supervision</label>
                        <input name="num_exp_supervision" value="{{old('num_exp_supervision')}}" class="form-control" type="number" placeholder="Nº Expediente de Supervision">
                    </div>


{{--                     <div class="form-group">
                      <div class="custom-control custom-checkbox">
                        <input type="checkbox" value='1' name='cot_tesoro' class="custom-control-input" id="customCheck1">
                        <label class="custom-control-label" for="customCheck1">Cotiza en el Tesoro Nacional</label>
                      </div>
                      <div class="custom-control custom-checkbox">
                        <input type="checkbox" value='1' name='cot_banavih' class="custom-control-input" id="customCheck1">
                        <label class="custom-control-label" for="customCheck1">Cotiza en BANAVIH?</label>
                      </div>
                      <div class="custom-control custom-checkbox">
                        <input type="checkbox" value='1' name='cot_ivss' class="custom-control-input" id="customCheck1">
                        <label class="custom-control-label" for="customCheck1">Cotiza en el IVSS</label>
                      </div>
                    </div> --}}
                    <div class="form-group">
                        <label>Porcentaje aportado por el trabajador</label>
                        <input name="aport_trabaj" value="{{old('aport_trabaj')}}" class="form-control" type="text" placeholder="Indique el procentaje aportado por el trabajador">
                    </div>
                    <div class="form-group">
                        <label>Porcentaje aportado por el patrono</label>
                        <input name="aport_patron" value="{{old('aport_patron')}}" class="form-control" type="text" placeholder="Indique porcentaje aportado por el patrono">
                    </div>

                    <div class="form-group">
                        <label>Nº activos fijos</label>
                        <input name="fijos_act" value="{{old('fijos_act')}}" class="form-control" type="text" placeholder="Cantidad de activos fijos">
                    </div>
                    <div class="form-group">
                        <label>Nº cantidad de activos contratados</label>
                        <input name="contratados_act" value="{{old('contratados_act')}}" class="form-control" type="text" placeholder="Cantidad de activos contratados">
                    </div>
                    <div class="form-group">
                        <label>Nº activos (otros)</label>
                        <input name="otros_act" class="form-control" value="{{old('otros_act')}}" type="text" placeholder="Cantidad de activos (otros)">
                    </div>

                    <div class="form-group">
                        <label>Nº mujeres jubiladas</label>
                        <input name="jubiladas" value="{{old('jubiladas')}}" class="form-control" type="text" placeholder="Cantidad de mujeres jubiladas">
                    </div>
                    <div class="form-group">
                        <label>Nº hombres jubilados</label>
                        <input name="jubilados" value="{{old('jubilados')}}" class="form-control" type="text" placeholder="Cantidad de hombres jubilados">
                    </div>
                    <div class="form-group">
                        <label>Monto anual</label>
                        <input name="jubilados_bs_anual" value="{{old('jubilados_bs_anual')}}" class="form-control" type="text" placeholder="Monto anual de la nomina en Bs.">
                    </div>

                    <div class="form-group">
                        <label>Nº mujeres pensionadas por sobrevivientes</label>
                        <input name="pensionadas_s" value="{{old('pensionadas_s')}}" class="form-control" type="text" placeholder="Cantidad de mujeres pensionadas por sobrevivientes">
                    </div>
                    <div class="form-group">
                        <label>Nº hombres pensionados por sobrevivientes</label>
                        <input name="pensionados_s" value="{{old('pensionados_s')}}" class="form-control" type="text" placeholder="Cantidad de hombres pensionados sobrevivientes">
                    </div>
                    <div class="form-group">
                        <label>Monto anual</label>
                        <input name="pensionados_s_bs_anual" value="{{old('pensionados_s_bs_anual')}}" class="form-control" type="text" placeholder="Monto anual de la nomina en Bs.">
                    </div>

                   <div class="form-group">
                        <label>Nº mujeres pensionadas por incapacidad</label>
                        <input name="pensionadas_i" value="{{old('pensionadas_i')}}" class="form-control" type="text" placeholder="Cantidad de mujeres pensionadas por incapacidad">
                    </div>
                    <div class="form-group">
                        <label>Nº de hombres pensionados por incapacidad</label>
                        <input name="pensionados_i" value="{{old('pensionados_i')}}" class="form-control" type="text" placeholder="Cantidad de hombres pensionados incapacidad">
                    </div>
                    <div class="form-group">
                        <label>Monto anual</label>
                        <input name="pensionados_i_bs_anual" value="{{old('pensionados_i_bs_anual')}}" class="form-control" type="text" placeholder="Monto anual de la nomina en Bs.">
                    </div>

                    <div class="form-group">
                        <label>Observaciones</label>
                        <input name="observaciones" value="{{old('observaciones')}}" class="form-control" type="textarea" placeholder="Indique alguna observaciones, si existe">
                    </div>
                    <button type="submit" class="btn btn-danger">Agregar Ahora</button>
                </form>
            </div>
        </div>
    </div>


{{-- final caso de estudio --}}




      @else
        <div class="row">
          <div class="col-md-12">
            <div class="alert alert-info">
              <div class="tab-pane fade active show" id="Perfil">

                <ul class="list-group">
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Fecha de envio:<br>{{$institucion->casoestudio->fec_envio}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Fecha de respuesta:<br>{{$caso_estudio-> fec_respuesta}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº Entrega:<br>{{$caso_estudio-> num_entrega}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº Oficio SiSS:<br>{{$caso_estudio-> num_oficio_siss}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº Expediente de Supervision:<br>{{$caso_estudio-> num_exp_supervision}}
                    </li>
      {{-- 
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Fecha de envio:<br>{{$caso_estudio-> cot_tesoro}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Fecha de respuesta:<br>{{$caso_estudio-> cot_banavih}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº Entrega:<br>{{$caso_estudio-> cot_ivss}} 
                    </li>   --}}
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Porcentaje aportado por el trabajador:<br>{{$caso_estudio-> aport_trabajador}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Porcentaje aportado por el patrono:<br>{{$caso_estudio-> aport_patron}}
                    </li>

                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº activos fijos:<br>{{$caso_estudio-> fijos_act}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº activos contratados:<br>{{$caso_estudio-> contratados_act}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº ativos (otros):<br>{{$caso_estudio-> otros_act}}
                    </li>

                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Porcentaje aportado por el trabajador:<br>{{$caso_estudio-> jubiladas}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Porcentaje aportado por el patrono:<br>{{$caso_estudio-> jubilados}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Porcentaje aportado por el patrono:<br>{{$caso_estudio-> jubilados_bs_anual}}
                    </li>

                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº mujeres pensionadas por incapacidad:<br>{{$caso_estudio-> pensionadas_i}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº hombres pensionados por incapacidad:<br>{{$caso_estudio-> pensionados_i}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Monto anual de la nomina:<br>{{$caso_estudio-> pensionados_i_bs_anual}}Bs.
                    </li>

                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº mujeres pensionadas por sobreviviente:<br>{{$caso_estudio-> pensionadas_s}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Nº hombres pensionados por sobreviviente:<br>{{$caso_estudio-> pensionados_s}}
                    </li>
                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Monto anual de la nomina:<br>{{$caso_estudio-> pensionados_s_bs_anual}}Bs.
                    </li>

                    <li class="list-group-item d-flex justify-content-between align-items-center">
                      Observaciones:<br>{{$caso_estudio-> observaciones}}
                    </li>
                </ul>

              </div>
            </div>
          </div>
        </div>

      @endif

    </form>
  </div>
  {{-- pestaña 3 --}}
  <div class="tab-pane fade" id="Seguimiento">
    <p>
      en construccion
    </p>
  </div>
  {{-- pestaña 4 --}}
  <div class="tab-pane fade" id="Archivos">
    <p>
      en construccion
    </p>
  </div>
</div>

@endsection
    
asked by baky 06.10.2018 в 00:43
source

1 answer

0

you can do it like this:

reading laravel if we do not go to:
vendor/laravel/framework/src/Illuminate/Database
we will see that the method find() that is the one that you use in% $institucion = Institucion::find($id);

is defined as follows for both builders:

 // Query/builder.php
public function find($id, $columns = ['*'])
{
    return $this->where('id', '=', $id)->first($columns);
}

// Eloquent/builder.php
public function find($id, $columns = ['*'])
{
    if (is_array($id) || $id instanceof Arrayable) {
        return $this->findMany($id, $columns);
    }

    return $this->whereKey($id)->first($columns);
}

so you must pass the argument ->first(['*'])

$casos = DB::table('casos_estudios')
   ->leftJoin('institucion ', 'casos_estudios.institucion_id', '=', 'institucion.id')
            ->where('institucion_id', '=' ,$aux_id)
            ->first(['*']);

reference: join laravel

    
answered by 13.12.2018 в 03:56