我只是在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。请帮忙 感谢。
答案 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');
}
}