【问题标题】:View not recieving variable from controller Laravel 8查看未从控制器 Laravel 8 接收变量
【发布时间】:2021-09-09 07:38:03
【问题描述】:

正如标题所说,使用其他控制器和视图我可以发送数据,但我不能使用控制器和视图,我将在下面发布。

控制器代码(它是一个资源控制器,但我使用的是自定义函数)

<?php

namespace App\Http\Controllers;
use App\Models\Persona;
use Illuminate\Http\Request;

class PersonaController extends Controller
{

public function mostrarMedicos(){
    $medicos = Persona::where('idTipoPersona', 4)->get();
    return view('gestionMedicos',compact($medicos));

} }

查看代码

@extends('layouts.app')

@section('content')

<h1>Gestión Médicos</h1>
<div class="container">
    <table class="table table-bordered table-hover">
        <tr class="info">
            <th>Nombre</th>
            <th>Apellido</th>
            <th>Cedula</th>
            <th>Email</th>
            <th>Teléfono</th>
            <th>Dirección</th>
            <th>Ciudad Residencia</th>
            <th>Fecha de Nacimiento</th>
            <th>Género</th>
        </tr>
        @foreach ($medicos as $medico)
            <tr>
                <td>{{$medico->nombre}}</td>
                <td>{{$medico->apellido}}</td>
                <td>{{$medico->cedula}}</td>
                <td>{{$medico->email}}</td>
                <td>{{$medico->telefono}}</td>
                <td>{{$medico->direccion}}</td>
                <td>{{$medico->ciudadResi}}</td>
                <td>{{$medico->fechaNacimiento}}</td>
                <td>{{$medico->genero}}</td>
            </tr>
        @endforeach
    </table>

路线

Route::get('/gestionarMedicos', [PersonaController::class,'mostrarMedicos'])->name('personaMostrarMedicos');

这是我遇到的错误

Undefined variable $medicos (View: D:\xampp\htdocs\SistemaHNF\resources\views\gestionMedicos.blade.php)

我是 Laravel 的新手,我不明白为什么我会收到这个错误,如果据我所知,控制器应该返回带有应该包含数据的 $medicos 变量的视图。

(英语不是我的主要语言,如有任何错误,我深表歉意,如果需要,我可以发布任何额外的代码或更详细地解释一些内容)。

【问题讨论】:

  • 返回视图('gestionMedicos',compact('medicos'));简单只需删除 $ 符号

标签: php laravel laravel-8


【解决方案1】:

您已经返回查询生成器,忘记调用get()first() 并且compact 也有问题

public function mostrarMedicos(){
        $medicos = Persona::where('idTipoPersona', 4)->get();
        return view('gestionMedicos',compact('medicos'));
}

【讨论】:

  • 已经这样做了,但仍然出现错误。将更新问题以反映更改
  • @DiegoUtreras.you 对紧凑型有疑问。再次检查我的答案
  • 是的,这是 iisue @John,感谢您的帮助。它需要变量作为紧凑方法中的字符串,我的错误。
猜你喜欢
  • 1970-01-01
  • 2019-05-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
  • 2013-08-15
相关资源
最近更新 更多