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