0

こんにちは、私は dektrium の yii2 ユーザーを使用しています。user_id アカウントをテーブルに保存します。User テーブルには、私のテーブルと 1..N の関係があります。私はプリンシアピアンテであり、テーブルにユーザー ID を保存する方法がわかりません。試してみましたが、データベースのレコードが空白です。

私のモデル

public static function tableName()
{
    return 'viaggio';
}


/**
 * @inheritdoc
 */
public function rules()
{
    return [
        [['citta_part','citta_arrivo','user_id'], 'required'],
        [['data_part','ora_part','data_arrivo','ora_arrivo'],'safe'],
        [['posti_disponibili', 'conferma_utenze', 'user_id','posti_max'], 'integer'],
        [['prezzo'], 'number'],
        [['citta_part', 'via_part', 'citta_arrivo', 'via_arrivo', 'veicolo'], 'string', 'max' => 45],
        [['note'], 'string', 'max' => 255],
        [['wifi', 'bagno', 'ac_dc','condizioni'],'integer'],
        [['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],

    ];
}

/**
 * @inheritdoc
 */
public function attributeLabels()
{
    return [
        'id_viaggio' => Yii::t('app', 'Id Viaggio'),
        'citta_part' => Yii::t('app', 'Citta Part'),
        'via_part' => Yii::t('app', 'Via Part'),
        'ora_part' => Yii::t('app', 'Ora Part'),
        'data_part' => Yii::t('app', 'Data Part'),
        'posti_disponibili' => Yii::t('app', 'Posti Disponibili'),
        'conferma_utenze' => Yii::t('app', 'Conferma Utenze'),
        'prezzo' => Yii::t('app', 'Prezzo'),
        'note' => Yii::t('app', 'Note'),
        'citta_arrivo' => Yii::t('app', 'Citta Arrivo'),
        'data_arrivo' => Yii::t('app', 'Data Arrivo'),
        'ora_arrivo' => Yii::t('app', 'Ora Arrivo'),
        'via_arrivo' => Yii::t('app', 'Via Arrivo'),
        'veicolo' => Yii::t('app', 'Veicolo'),
        'posti_max' => Yii::t('app', 'Posti Max'),
        'wifi' => Yii::t('app', 'Wifi'),
        'bagno' => Yii::t('app', 'Bagno'),
        'ac_dc' => Yii::t('app', 'Ac Dc'),
         'user_id' => Yii::t('app', 'User ID'),

    ];
}


public function getUser()
{
    return $this->hasOne(User::className(), ['id' => 'user_id'])->inverseOf('offris');
}

私のコントローラー

public function actionOffri() {

    $model = new Offri;

    if($model->load(Yii::$app->request->post()) && $model->validate() && $model->save()) {

      $model->$user_id = Yii::$app->user->identity->id;
      Yii::$app->session->setFlash('success', 'Hai inserito i dati correttamente');

      return $this->render('offri', ['model' => $model]);

    } else {

      Yii::$app->getSession()->setFlash('error', 'Completa correttamente tutti i campi.');
      return $this->render('offri', ['model' => $model]);
    }

}

提案?

4

2 に答える 2