[英]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.