我有两个桌子 即。 1)机舱(id,机舱名称,状态) 在小木屋中,表ID是主键[。] [1]
2)表(id,cabinfk_id,表名,状态)
这里cabfk_id是座舱表ID的参考键。
在上面的表格中,当我创建新表时,其中一个小屋中有很多表,因此我在汞舱中输入了三个表
我在这里保存了它,它成功保存了,但是在列表的表视图文件中列出了表名,机舱名称和状态
我的问题在机舱名称栏中,我希望机舱名称为汞,而不是在图2中显示为28 28 28 的机舱ID
----------------------------开始------------------ ------------
命名空间应用程序\模型;
使用Yii;
**
* This is the model class for table "tables".
*
* @property int $id
* @property string $tablename
* @property int $cabinfk_id
* @property int $status 1=active, 0=inactive
*
* @property Orders[] $orders
* @property Cabins $cabinfk
*/
class Tables extends \yii\db\ActiveRecord
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'tables';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['tablename', 'cabinfk_id', 'status'], 'required'],
[['cabinfk_id', 'status'], 'integer'],
[['tablename'], 'string', 'max' => 40],
[['cabinfk_id'], 'exist', 'skipOnError' => true, 'targetClass' => Cabins::className(), 'targetAttribute' => ['cabinfk_id' => 'id']],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'tablename' => Yii::t('app', 'Tablename'),
// 'cabinfk_id' => Yii::t('app', 'Cabinfk ID'),
'cabinfk_id' => Yii::t('app', 'Cabin Name'),
'status' => Yii::t('app', 'Status'),
];
}
/**
* @return \yii\db\ActiveQuery
*/
public function getOrders()
{
return $this->hasMany(Orders::className(), ['tablefk_id' => 'id']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getCabinfk()
{
return $this->hasOne(Cabins::className(), ['id' => 'cabinfk_id']);
}
}
------------------------结束---------------------- -------
答案 0 :(得分:0)
如果您有gridView,则可以这样设置:
[
'attribute' => 'cabinfk_id',
'value' => 'cabinfk.name'
],
如果您有详细信息视图:
[
'attribute' => 'cabinfk_id',
'value' => $model->cabinfk->name,
],