【问题标题】:Query in laravel returns empty responselaravel 中的查询返回空响应
【发布时间】:2020-01-22 07:04:09
【问题描述】:

我想在 laravel 中使用 leftJoin 从我的数据库中检索数据。我的约会表中有两个表名usersappointments,有一个字段名doctor_id 保存与用户ID 相关的医生ID。两者的 id 值是相同的。如果users 表中的列id 值与appointments 表中的列约会值与@987654334 的where 子句匹配,我需要users 表和appointment_date 中的医生姓名和appointments 表中的status @。但是当我执行查询时,它返回空响应。

代码

$patientID = $request->patientID;
$prevAppointments = DB::table('appointments')
  ->leftJoin('users', 'appointments.doctor_id', '=', 'users.id')
  ->select(
    'users.first_name',
    'users.last_name',
    'appointments.appointment_date',
    'appointments.status'
  )
  ->where('appointments.patient_id', $patientID)
  ->get();
return($prevAppointments);

用户表

约会表

【问题讨论】:

  • 首先,您是否从数据库运行查询。你那里有结果吗?使用sqlfiddle.com 分享一些示例数据。

标签: php mysql laravel laravel-query-builder


【解决方案1】:

试试这个 -

$patientID = $request->patientID;
$prevAppointments = DB::table('appointments')
                        ->leftJoin('users', 'appointments.doctor_id', '=', 'users.id')
                        ->select('users.first_name','users.last_name','appointments.patient_id', 'appointments.appointment_date','appointments.status')
                        ->where('appointments.patient_id',$patientID)
                        ->get();
return($prevAppointments);

【讨论】:

  • 仍然返回空白响应
  • 检查您的$request->patientID;doctor_id 是否有usersappointments 表。我已经对其进行了测试,并且可以正常工作。
  • 成功了。很抱歉我的约会表是空白的。谢谢 ;)
  • @Ajmal-Hossain 另一个重要的事情是你应该练习 Laravel 的一大特色 - Eloquent。它可以为您提供更好的性能和更少的错误,并且可以轻松处理已经说过的“Hamid Shariati”。请看一下 - laravel.com/docs/5.8/eloquent
【解决方案2】:

使用此命令创建模型(如果您没有任何约会模型): 项目类型的根目录内:

php artisan make:model Appointment

在创建的文件中写下这些:

protected $fillable=['patient_id','doctor_id','appointment_date','status'];

public function doctor(){
    $this->belongsTo(User::class,'doctor_id');
}

现在你可以使用这个 Eloquent Query: 首先添加约会类:

 Use App\Appointment;

然后在方法中使用这个:

 $prevAppointments = Appointment->where('patient_id','=',$patientID)->first();

现在您有一个集合,其中包含与医生属性的约会。有关 Eloquent ORM 和 Laravel 集合的更多详细信息,请点击此链接:https://hamidshariati.ir/most-important-articles-to-learn-laravel/

【讨论】:

  • 你没有收到我的问题
  • 如果您使用雄辩的法律,并且如果表格中有带有该 patient_id 的数据,您就会得到结果。您使用的 leftjoin 和 query 更复杂,并且会产生更多错误。
  • 您可以使用以下类型测试您的查询:php artisan tinker
  • 您也可以给 patient_id 提供常量,以确保您的查询是否正确,您知道 Patient_id 已预约且医生 ID 不为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 2021-09-19
  • 2020-08-06
  • 2015-01-02
  • 1970-01-01
  • 2020-03-18
  • 2021-09-02
相关资源
最近更新 更多