【问题标题】:undefined variable When loading the view in laravel未定义的变量在 laravel 中加载视图时
【发布时间】:2017-12-30 19:27:39
【问题描述】:

即使我已从 doctorAppointment 模型中的表中检索数据,然后将其传递给控制器​​,然后控制器将其进一步传递给查看,我仍然在 View 中收到此未定义变量的错误。 这是模型

<?php

   namespace App;

   use Illuminate\Database\Eloquent\Model;

   class doctorAppointment extends Model
   {
      public function user()
      {
          return $this->belongsTo('App\User');
      }
   }

这是我的控制器

class AppointmentController extends Controller

{
      public function GetAppointment()
      {
        $doctorAppointment= doctorAppointment::all();
        return view('dashboard',array('appointments'=>$doctorAppointment));
      }
  }

这是我的看法

@foreach($appointments as $appointment)
  <p>{$appointment->patientEmail}</p>
@endforeach

这是我的路线

Route::get('/dashboard',  'AppointmentController@GetAppointment');

【问题讨论】:

  • 我在控制器中使用这个语句来访问模型使用App\doctorAppointment
  • 你的类命名约定是错误的。类名的第一个字母必须是大写字母,即DoctorAppointment 。在GetAppointment 中执行此操作:return view('dashboard')-&gt;with('appointments', $doctorAppointment);
  • @Regolith 更正了建议的命名约定,但仍然无法正常工作,将医生约会重命名为 DoctorAppointment 并在所有其他文件中也将其重命名
  • 能否尝试dump控制器中的数据以确保有数据?尝试在$doctorAppointment = doctorAppointment::all(); 之后使用dd($doctorAppointment);。因为除了你没有遵循约定,你还没有为 laravel 模型定义 table_name。另一件事是您必须通过类型use App\doctorAppointment; 在控制器标题中导入模型文件
  • 我在控制器中导入了模型,我只是忘记粘贴该语句。我将其导入为使用 App\DoctorAppointment

标签: php laravel-5


【解决方案1】:

试试这个代码有没有帮助

class AppointmentController extends Controller
{
  public function GetAppointment()
  {
    $appointments= doctorAppointment::all();
    return view('dashboard',compact('appointments'));
  }
}

【讨论】:

    【解决方案2】:

    你不认为&lt;p&gt;标签值应该在双花括号{{ }}内。

    <p>{{ $appointment->patientEmail }}</p>
    

    参考:https://laravel.com/docs/5.4/blade#displaying-data

    对于未定义的情况,请尝试:

    <p>{{ $appointment->patientEmail or 'No Email'}}</p>
    

    【讨论】:

    • 用花括号也试过了。还是一样的错误
    • {{ print_r($appointments) }} 在@foreach 之外执行此操作并检查是否有任何数据到来
    • 做到了,但它仍然给出未定义的变量:/
    • 抱歉,再试一次,你能不能在控制器中做一个dd($doctorAppointment) 并检查数据是否来自模型?
    • 我将 dd($doctorAppointment) 语句放在控制器的功能中,屏幕上没有显示任何内容#sadlyf
    【解决方案3】:

    这样使用

    public function GetAppointment()
    {
       $doctorAppointment= doctorAppointment::all();
       return view('dashboard')->with('appointments', $doctorAppointment);
     }
    

    【讨论】:

    • 即使在尝试了您上面提出的更改后,它仍然会出现相同的错误。
    猜你喜欢
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多