yii2-gii crud db关系(一对多)


yii2 gii crud db relation(one to many)

gii成功生成模型(具有关系):

/**
 * @return 'yii'db'ActiveQuery
 */
public function getClient()
{
    return $this->hasOne(Client::className(), ['id' => 'client_id']);
}

但当我生成crud时,在客户端文件中只输入文本字段。请帮帮我,哪里有问题?

这是正确的。在_form.php文件中,如果用户应该选择客户端,则必须定义一个下拉框:
<?= $form->field($model, 'client')->dropDownList($clients) ?>

在控制器操作创建/更新中,您必须提供$clients:

return $this->render('create', [  // or: return $this->render('update', [
    'model'    => $model,
    'clients' => ArrayHelper::map(Client::find()->all(), 'id', 'name'),
]);

不要忘记在create.php和update.php的视图文件中将它们传递到_form.php文件:

<?= $this->render('_form', [
    'model' => $model,
    'clients' => $clients, // <-- added
]) ?>

在其他视图中,您只想向客户端显示您可以使用以下内容:

echo $model->client->name; //or something different