Laravel - Traer el id de otra tabla

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido 1 puesto en Laravel (en relación al último mes)
Gráfica de Laravel

Traer el id de otra tabla

Publicado por Mariano (2 intervenciones) el 27/08/2018 17:10:44
Tengo dos tablas: equipos y servicios. También hice un CRUD por cada tabla (con modelo, ruta, controlador).

Intento traer el id de equipos a la pantalla servicios/create.blade.php, ya que a un equipo creado quiero asignarle un servicio (relación uno a muchos).

Los pasos son: Creo el equipo (create), lo muestro (index), paso directamente desde la pantalla equipo/index.php la pantalla servicio/create.php.blade El equipo lo crea bien. Relación: equipo->id = servicios->equipo_id.

Paso los códigos. Muchas gracias por ayudarme!

CONTROLADOR equipo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class EquiposController extends Controller
{
 
    public function index(Request $request)
    {
        $equipos=Equipo::Search($request->id)->orderBy('id','DESC')->paginate(10);
        $equipos->each(function($equipos){
          $equipos->id;
        });
        return view('Equipo.index')
          ->with('equipos', $equipos);
    }
 
 
    public function create()
    {
        return view('Equipo.create');
    }
 
    public function store(Request $request)
 
    {
 
        $equipo = new Equipo;
 
        $equipo->serie_equipo_anterior = $request->serie_equipo_anterior;
        $equipo->fecha_alta            = $request->fecha_alta;
        $equipo->tipo                  = $request->tipo;
        $equipo->marca                 = $request->marca;
        $equipo->personal_dip          = $request->personal_dip;
        $equipo->observacion           = $request->observacion;
        $equipo->estado_equipo         = $request->estado_equipo;
 
        $equipo->save();
 
        // Redirect to Another Page
 
        return redirect()->route('equipo.index', $equipo->id);
 
    }

CONTROLADOR servicio:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class ServiciosController extends Controller
{
 
    public function index(Request $request)
    {
        $servicios=Servicio::Search($request->equipo_id)->orderBy('id','DESC')->paginate(10);
        $servicios->each(function($servicios){
          $servicios->id;
        });
        return view('Servicio.index')
          ->with('servicios', $servicios);
    }
 
    public function create()
    {
        $equipos=DB::table('equipos')->get();
 
        return view('Servicio.create', ['equipos'=>$equipos]);
    }
 
 
    public function store(Request $request)
    {
 
        $servicio = new Servicio;
        $servicio->equipo_id             = $request->get('equipo_id');
        $servicio->fecha_ingreso         = $request->get('fecha_ingreso');
        $servicio->unidad_destino        = $request->get('unidad_destino');
        $servicio->subunidad_destino     = $request->get('subunidad_destino');
        $servicio->personal_entrega      = $request->get('personal_entrega');
        $servicio->telefono              = $request->get('telefono');
        $servicio->personal_div_servicio = $request->get('personal_div_servicio');
        $servicio->accesorios            = $request->get('accesorios');
        $servicio->motivo_ingreso        = $request->get('motivo_ingreso');
        $servicio->detalle_reparacion    = $request->get('detalle_reparacion');
        $servicio->fecha_devolucion      = $request->get('fecha_devolucion');
        $servicio->personal_retira       = $request->get('personal_retira');
        $servicio->observacion_retira    = $request->get('observacion_retira');
        $servicio->estado_servicio       = $request->get('estado_servicio')
        $servicio->save();
        // Redirect to Another Page
        return redirect()->route('servicio.index', $servicio->id);
    }

MODELO equipo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class Equipo extends Model
{
    protected $table    = 'equipos';
    public $timestamps = false;
 
    protected $fillable = ['serie_equipo_anterior',
                           'fecha_alta',
                           'tipo',
                           'marca',
                           'personal_dip',
                           'observacion',
                           'estado_equipo'
                          ];
 
    public function scopeSearch($query, $id)
    {
        return $query->where('id', 'LIKE', "%$id%");
    }
 
    public function aservicio()
    {
        return $this->hasMany('\App\Servicio', 'id');
    }
}

MODELO servicio:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
 
namespace App;
 
use Illuminate\Database\Eloquent\Model;
 
class Servicio extends Model
{
    protected $table    = 'servicios';
    public $timestamps = false;
 
    protected $fillable = ['equipo_id',
           'fecha_ingreso',
           'unidad_destino',
           'subunidad_destino',
           'personal_entrega',
           'telefono',
           'personal_div_servicio',
           'accesorios',
           'motivo_ingreso',
           'detalle_reparacion',
           'fecha_devolucion',
           'personal_retira',
           'observacion_retira',
           'estado_servicio'
       ];
 
    public function scopeSearch($query, $equipo_id)
    {
        return $query->where('equipo_id', 'LIKE', "%$equipo_id%");
    }
 
    public function aequipo()
    {
        return $this->belongsTo('App\Equipo', 'equipo_id');
    }
 
}

PANTALLA servcio/create.blade.php

1
2
3
4
5
6
7
8
<!--equipo_id-->
<th class="text-left">
    <select class="form-control" name="equipo_id" id="equipo_id" >
        @foreach ($equipos as $equipo)
            <option value="{{$equipo->id}}">{{$equipo->tipo}}</option>
        @endforeach
    </select>
</th>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder