Как получить название каюты с помощью cabfk_id в yii? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть две таблицы, т.е.1) каюты (id, имя каюты, статус), где в каютах идентификатор таблицы является первичным ключом [.] [1]

2) таблицы (id, CabinFid_id, имя таблицы, статус)
здесь CabinFk_id являетсяссылочный ключ идентификатора таблицы кают.

здесь в приведенной выше форме, когда я создаю новые таблицы, где в одной каюте много таблиц, так как я ввожу три таблицы в каюте ртути

здесь я сохранилон успешно сохранен, но в виде файла таблицы в списке есть имя таблицы и название каюты

Мой вопрос в колонке с названием каюты. Я хочу указать название каюты в виде ртути вместо идентификатора каюты, отображаемого как28 28 28 на рис. 2

Модель-код таблиц

---------------------------- начало ------------------------------

приложение пространства имен \ models;

useYii;

**
 * 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 голосов
/ 11 декабря 2018

Если у вас есть gridView, вы можете установить его так:

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

Если у вас есть подробный вид:

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

      ],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...