在laravel中找到与很多关系的结果


Find result with hasmany relationship in laravel

我刚刚在laravel中开始一个项目,这对我来说是一个新的环境。我熟悉PHP,也熟悉关系模型。但是laravel的结构在一开始就有点复杂。所以问题是我有一个问题和课程表,一个问题可能有不止一个课程,所以我又创建了一个表,其中包含课程id和问题id。

问题模型

namespace App'Models;
use Illuminate'Database'Eloquent'Model;
class Question extends Model{
    protected $primaryKey = "id";
    public function courses(){
        return $this->hasMany('App'Models'CourseQuestion');
    }
}

课程模型

namespace App'Models;
use Illuminate'Database'Eloquent'Model;
class Course extends Model {
    protected $primaryKey = "id";
    public function questions(){
        return $this->hasOne('App'Models'CourseQuestion');
    }
} 

最后一道课问题模型

namespace App'Models;
use Illuminate'Database'Eloquent'Model;
class CourseQuestion extends Model {
    protected $primaryKey = "id";
    public function questions(){
        return $this->hasOne('App'Models'Question');
    }
    public function courses(){
        return $this->hasMany('App'Models'Course');
    }
}

我的控制器在哪里得到结果-

class IndexController extends BaseController {
    public function index(){
        $user = Question::with('user','courses','branches')->find(100);
        echo "<pre>";
        print_r($user); die;
    }
}

所以课程只返回课程id和存储在第三张表中的问题,但我想要课程名称各自的id。请帮助谢谢

namespace App'Models;
use Illuminate'Database'Eloquent'Model;
class Question extends Model
{
    protected $primaryKey = "id";
    public function courses()
    {
        return $this->hasMany('App'Models'CourseQuestion', 'course_question_id', 'id')
         ->select('id', 'name');
    }
}