由于Yii文档写的确实解释不够,例子有但是参数对应什么没有进行说明
举例说明:
- lesson表:主键lesson_id
- video表:主键video_id
- 中间表lesson_video:lid,vid
定义
Lesson.php
Class Lesson extends ActiveRecord
{
public static function tableName()
{
return 'lesson';
}
public function getVideos()
{
return $this->hasMany(Video::tableName(), ['video_id' => 'vid'])
->viaTable(LessonVideo::tableName(), ['lid' => 'lesson_id']);
}
}
hsaMany里填的字段名是 video表的主键->中间表对应的video主键字段
viaTable中填的是中间表对应lesson主键字段->lesson表的主键
调用
IndexController.php
Class IndexController extends Controller
{
public function actionLesson()
{
$lesson = Lesson::findOne(114);
$videos = $lesson->videos;
}
}