Laravel 查询belongsTo关系

Laravel 查询belongsTo关系,laravel,laravel-5,Laravel,Laravel 5,我有两张桌子,“任务”和“课程”。存在一对多关系设置(任务属于课程,课程有许多任务)。我试图筛选我的任务列表,但对于如何基于courses表中的列进行查询感到困惑 在课程表中,我有一个名为“学院名称”的栏。我有一个下拉过滤器,当我从中选择一个学院名称时,我想返回链接到课程表中具有相同“学院名称”的行的所有任务 因此,我试图构建的查询是“选择属于学院名称为X的课程的所有任务(学院名称取自下拉选择输入)。在我的控制器中,我得到的下拉值如下所示: $college = Input::get('coll

我有两张桌子,“任务”和“课程”。存在一对多关系设置(任务属于课程,课程有许多任务)。我试图筛选我的任务列表,但对于如何基于courses表中的列进行查询感到困惑

在课程表中,我有一个名为“学院名称”的栏。我有一个下拉过滤器,当我从中选择一个学院名称时,我想返回链接到课程表中具有相同“学院名称”的行的所有任务

因此,我试图构建的查询是“选择属于学院名称为X的课程的所有任务(学院名称取自下拉选择输入)。在我的控制器中,我得到的下拉值如下所示:

$college = Input::get('colleges_filter');
<?php namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Task extends Model {

    public function course() {
        return $this->hasOne(\App\Models\Course::class, 'foreign_key');
    }
}

class Course extends Model {

    public function tasks() {
        return $this->hasMany(\App\Models\Task::class, 'foreign_key', 'local_key');
    }
}

…返回学院名称(例如“Oxford college”)。我现在需要在查询中添加并使用它,但我尝试的所有操作都会出错。有人能帮忙吗?

好的,在雄辩中,这将如下所示:

$college = Input::get('colleges_filter');
<?php namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Task extends Model {

    public function course() {
        return $this->hasOne(\App\Models\Course::class, 'foreign_key');
    }
}

class Course extends Model {

    public function tasks() {
        return $this->hasMany(\App\Models\Task::class, 'foreign_key', 'local_key');
    }
}

在课程模型中添加此关系

class Course extends Model {

    public function tasks() {
        return $this->hasMany(Task::class, 'foreign_key', 'local_key');
    }
}
获取基于课程的任务列表选择将下面的查询写入控制器

$college = Input::get('colleges_filter');
$course = Course::where('college_name', $college)->with('tasks)->first();
您可以通过以下方式访问课程列表:

$course->tasks

大学似乎是多余的,我会创建一个名为
大学
的新模型,然后使用ids就更容易了:)