加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

activerecord – yii2如何获取关系并使用外键获取id的标题

发布时间:2020-12-13 16:55:51 所属栏目:PHP教程 来源:网络整理
导读:我有事件模型,一个事件有一个项目,一对一关联,我在事件模型中写函数得到项目如下 public function getprojects() { return $this-hasOne(appmodelsProject::className(),['id' = 'projectid']);} 以下是我的控制器的代码 if ($model-load(Yii::$app-reques
我有事件模型,一个事件有一个项目,一对一关联,我在事件模型中写函数得到项目如下

public function getprojects() {
    return $this->hasOne(appmodelsProject::className(),['id' => 'projectid']);
}

以下是我的控制器的代码

if ($model->load(Yii::$app->request->post()) && $model->save()) {
            $project = $model->project;
            return $this->redirect(['eventdetail','id' => $model->id,'project' => $project]);
        }

和详细信息视图代码是

<?= DetailView::widget([
        'model' => $model,'attributes' => [
            'id','projectid','userid','milestone','datetime',],]) ?>

我想打印项目标题而不是projectid,我们从关联表中获取标题如何获得标题并打印详细视图

解决方法

1)如果您只需要文本值,最简单的方法是将projectId更改为projects.title:

'attributes' => [
    'projects.title',

根据标签,还将从Projects模型中获取.

2)对于更复杂的情况和不同的格式化,您可以调用任何模型方法来检索所需的数据.

例:

'attributes' => [
    [        
        'attribute' => 'avatar','format' => 'raw','value' => $model->getAvatar(),

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读