在laravel中找到hasmany relationship的结果

时间:2016-03-25 04:15:34

标签: php mysql laravel laravel-5 relational-database

我只是在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。请帮忙 感谢。

1 个答案:

答案 0 :(得分:0)

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');
    }
}