Yii2连接多个表

Yii2连接多个表,yii2,yii2-model,Yii2,Yii2 Model,我有一张桌子 CREATE TABLE IF NOT EXISTS `register` ( `id` int(9) NOT NULL AUTO_INCREMENT, `student_id` varchar(15) NOT NULL, `title` varchar(100) NOT NULL, `name` varchar(250) NOT NULL, `email` varchar(50) NOT NULL, `gsm` varchar(15) NOT NULL,

我有一张桌子

CREATE TABLE IF NOT EXISTS `register` (
  `id` int(9) NOT NULL AUTO_INCREMENT,
  `student_id` varchar(15) NOT NULL,
  `title` varchar(100) NOT NULL,
  `name` varchar(250) NOT NULL,
  `email` varchar(50) NOT NULL,
  `gsm` varchar(15) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `birth_date` date NOT NULL,
  `department_id` int(2) NOT NULL,
  `specialization` varchar(150) NOT NULL,
  `level_id` int(2) NOT NULL,
  `reason` varchar(2000) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
它们与两个表部门和级别有关

CREATE TABLE IF NOT EXISTS `level` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `level` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

我已将注册模式中的关系作为

public function getDepartments() {
        return $this->hasOne(app\models\Department::className(), ['id' => 'department_id']);
    }
但是在view.php(视图文件)中,当我使用

<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'id',
            'student_id',
            'name',
            'email:email',
            'gsm',
            'gender',
            'birth_date',

 'department' ,
            'specialization',
            'level',
            'reason',
        ],
    ]) ?> ,
部门显示为“未设置”。
同时打印($model);?>显示
[部门]=>
(即,空白)。这里有什么问题?

使用
$model->relationName->field\u name

[
'attribute' => 'department_id', 
'value' => $model->departments->department
],

并在注册模型中添加部门模型。

最好将getDepartments更改为getDepartment,因为这是一个hasOne关系

[
  'attribute' => 'department_id', 
  'value' => isset($model->department) ? $model->department->department : ''
]

使用
['attribute'=>'department\u id','value'=>$model->departments->department]
。如果没有,则显示您的查询。它显示类“app\models\app\models\Department”未找到这是
register
Class的视图文件吗?是的,错误指向公共函数getDepartments(){return$this->hasOne(app\models\Department::className(),['id'=>'Department\u id']);}在register model中添加部门模型的路径。
[
  'attribute' => 'department_id', 
  'value' => isset($model->department) ? $model->department->department : ''
]