如何在yii中使用cabfk_id获取机舱名称?

时间:2018-12-11 10:19:21

标签: yii

我有两个桌子 即。 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']);

    }
}

------------------------结束---------------------- -------

1 个答案:

答案 0 :(得分:0)

如果您有gridView,则可以这样设置:

   [
     'attribute' => 'cabinfk_id',
     'value' => 'cabinfk.name'
     ],

如果您有详细信息视图:

 [
         'attribute' => 'cabinfk_id',
         'value' => $model->cabinfk->name,

      ],