繁体   English   中英

Yii2 - 如何从关系中获取字段值

[英]Yii2 - How to get field value from relation

我有一个表,其中包含来自不同来源的不同类型的文本数据,由类型、语言、源 ID 标识并存储在字段text 无论如何,是否可以通过活动记录关系返回而不是表的对象,而是仅通过关系返回其他单词标量查询中的字段text值?

示例:现在我有:

$modelName->RelationName->text) //field name storing expexted data, returns string.

想要的方式是:

$modelName->RelationName//text field value returned only.

是但使用lazy loading方法:

将您的关系更新为

public function getRelationName(){
    //Related model Class Name
    //related column name as select
    return $this->hasOne(RelationClass::className() ,['id' => 'id'])->select('name')->scalar();
}

然后得到关系值: -

$modelName->relationName//text field value returned only.

使用一个或多个 getter 扩展您的模型,以使用关系检索您需要的值,例如:

在您需要检索相关数据的模型中,您可以构建一个函数来定义关系(在本例中为 hasOne)

 */
public function getRelationName()
{
    return $this->hasOne(ModelOfTheRelation::className(), ['column1' => 'column1', 'EvColumn2' => 'Evcolumn2']);
}

然后你可以对数据使用getter函数

/* Getter f */
public function getRelatioName_field() 
{
    return $this->relationName->field;
}

鉴于您可以使用以下方法轻松获取数据

echo $model->relationName_field

or in gridview (dataprovider)


 'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'relationName_field',

此链接可能很有用http://www.yiiframework.com/wiki/621/filter-sort-by-calculated-related-fields-in-gridview-yii-2-0/

编辑:删除旧的和错误的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM