@qrolf

Почему не записывает данные в бд yii2?

Почему-то не записываются данные в бд .
$transfer = new TransferOperations();

$transfer->from_user = $fromUser;
$transfer->to_user = $toUser;
$transfer->money = $money;
$transfer->created_at = time();

$transfer->save();


Содержимое модели
public static function tableName()
    {
        return 'transfer_operations';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['created_at', 'to_user', 'from_user'], 'required'],
            [['created_at'], 'integer'],
            [['money'], 'number'],
            [['to_user', 'from_user'], 'string', 'max' => 255],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'created_at' => 'Created At',
            'to_user' => 'To User',
            'from_user' => 'From User',
            'money' => 'Money',
        ];
    }


Все ок, без ошибок, но в базу ничего не попадает.
  • Вопрос задан
  • 435 просмотров
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Во-первых, сделайте проверку
if($transfer->save()){
  // какое-то действие
}
else{
  // показать все ошибки
}

Показать все ошибки можно при помощи getErrors()
Во-вторых, замените это убожество
$transfer->created_at = time();
на публичный метод в модели
use yii\behaviors\TimestampBehavior;

    public function behaviors()
    {
        return [
          TimestampBehavior::className()
        ];
    }


p.s. Точно!!! Как подсказали в комментарии к моему ответу уберите created_at из валидации и сделайте так, как я написал выше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы