有没有一种方法可以使用多个 where 子句从多个关联的表中读取数据?

Is there a way of one reading data from multiple tables that are related using multiple where clause?

我有三个 table,即 类、预订和用户。我想阅读获得批准的用户预订。

但它给我一个错误,即使所有的列都在那里,也找不到列

table的结构如下

我得到的错误

这是我的查询

你能给我看看你的模型吗?您有什么理由不使用关系吗?

你错过了eloquent

的魔力

在您的课程模型上使用 hasMany bookings 并在您的预订模型上使用 belongsTo 可以解决您的问题。

https://laravel.com/docs/7.x/eloquent-relationships

我设法使用 laravel 从 Laravel 文档加入来解决它。查询如下,按我的预期工作。

 $myCourses = Classes::join('bookings', 'classes.id', '=', 'bookings.course_id')
        ->select('classes.*')
        ->where('bookings.customer_id', '=', auth()->user()->id)
        ->where('bookings.status', '=', 'Approved')
        ->get();

浏览了他们网站上的 laravel 文档并发现了它。 Link 到解决方案来源 https://laravel.com/docs/4.2/queries

谢谢