簡體   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