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

标签 activerecord yii

我有事件模型,一个事件有一个项目,一对一关联,我在事件模型中有写功能来获得项目,如下所示

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

下面是我的 Controller 的代码
if ($model->load(Yii::$app->request->post()) && $model->save()) {
            $project = $model->project;
            return $this->redirect(['eventdetail', 'id' => $model->id, 'project' => $project]);
        }

和详细 View 代码是
 <?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'id',
            'projectid',
            'userid',
            'milestone',
            'datetime',
        ],
    ]) ?>

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

最佳答案

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

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

同样根据标签将取自 Projects模型。

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

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

关于activerecord - yii2 如何使用外键获取关系和获取 id 的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985096/

相关文章:

ruby-on-rails - ActiveRecord 用户提供的列名

mysql - Rails:ActiveRecord::UnknownPrimaryKey 异常

javascript - Yii,将下拉列表值复制到隐藏的下拉列表

php - 网站无法在 IE8 中运行,但可以在 Google Chrome 中运行

php - Yii : Products with MANY_MANY categories and categories may or not has parent. 获取所有产品

php - Yii2 REST API 不返回预期结果

mysql - 针对匹配错误的 codeigniter 事件记录

ruby-on-rails - ActiveRecord 随机添加 "DESC"到 ORDER BY

javascript - 需要一个在 yii 中使用 ajax 将值存储在 php 数组中的解决方案

ruby-on-rails - 在 Ruby on Rails 中,create 和 create 之间有什么区别! API 文档没有吗?