не сохраняются данные в бд и ошибок не выдает

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
riaron
Сообщения: 49
Зарегистрирован: 2018.12.04, 14:12

не сохраняются данные в бд и ошибок не выдает

Сообщение riaron » 2019.06.25, 22:29

модель:

Код: Выделить всё

<?php
/**
 * Created by PhpStorm.
 * User: Andrey
 * Date: 26.03.2016
 * Time: 9:32
 */

namespace app\models;
use yii\db\ActiveRecord;


class InputFormC extends ActiveRecord{

    public static function tableName(){
        return 'cars';
    }
    public function attributeLabels(){
        return [
            'car_name'=> '1',
            'country'=> '1',
            'power'=>'1',
            'topspeed'=>'1',
            'type'=>'1',
            'photo'=>'1',
            'weight'=>'1',
            'pictogrm'=>'1',
            'aero'=>'1',
            'ee'=>'1',
            'engine'=>'1',
            'pers1'=>'1',
            'pers2'=>'1',
            'infas'=>'1',
            'profile'=>'1',
            'back'=>'1',

        ];
    }

    public function rules(){
        return [
            [ ['car_name', 'country', 'power', 'topspeed', 'type', 'photo', 'weight', 'pictogrm', 'aero', 'ee', 'lvl', 'pers1', 'pers2','infas','profile','back'], 'required'],
        ];
    }

}
view

Код: Выделить всё

<?php
use yii\widgets\ActiveForm;
use yii\helpers\Html;

$param=array('usa','germany','france','china','greatbretan');
$items=array('usa'=>'С.Ш.А.','germany'=>'Германия','france'=>'Франция','china'=>'Китай','greatbritan'=>'Великобритания');
?>


<?php $form = ActiveForm::begin(['options' => ['id' => 'inputform', 'options' => ['class' => 'inputform','enctype' => 'multipart/form-data']]])?>
<?= $form->field($model, 'car_name')?>
<? echo Html::dropDownList('country', '1', $items, $param);?>

<?= $form->field($model, 'power')?>
<?= $form->field($model, 'topspeed')?>
<?= $form->field($model, 'type')?>
<?= $form->field($model, 'photo')->fileInput()?>
<?= $form->field($model, 'pers1')->fileInput()?>
<?= $form->field($model, 'pers2')->fileInput()?>
<?= $form->field($model, 'infas')->fileInput()?>
<?= $form->field($model, 'profile')->fileInput()?>
<?= $form->field($model, 'back')->fileInput()?>
<?= $form->field($model, 'weight')?>
<?= $form->field($model, 'pictogrm')?>
<?= $form->field($model, 'aero')?>
<?= $form->field($model, 'ee')?>
<?= $form->field($model, 'lvl') ?>
<?= Html::submitButton('Отправить', ['class' => 'btn btn-success'])?>
<?php ActiveForm::end() ?>
controller

Код: Выделить всё



 public function actionInpc(){
        $model = new InputFormC();
        if($model->load(Yii::$app->request->post())){
            $model->photo = UploadedFile::getInstance($model, 'photo');
            $model->pers1 = UploadedFile::getInstance($model, 'pers1');
            $model->pers2 = UploadedFile::getInstance($model, 'pers2');
            $model->infas = UploadedFile::getInstance($model, 'infas');
            $model->profile = UploadedFile::getInstance($model, 'profile');
            $model->back = UploadedFile::getInstance($model, 'back');
            $path = Yii::$app->params['pathUploads'].'files/cars/';
            $a=generateCode(15);
            $b=generateCode(15);
            $c=generateCode(15);
            $d=generateCode(15);
            $e=generateCode(15);
            $f=generateCode(15);

            $model->photo->saveAs( $path.$a.$model->photo);
            $model->photo = '../files/cars/'.$a.$model->photo;
            $model->pers1->saveAs( $path.$b.$model->pers1);
            $model->pers1 = '../files/cars/'.$b.$model->pers1;
            $model->pers2->saveAs( $path.$c.$model->pers2);
            $model->pers2 = '../files/cars/'.$c.$model->pers2;
            $model->infas->saveAs( $path.$d.$model->infas);
            $model->infas = '../files/cars/'.$d.$model->infas;
            $model->profile->saveAs( $path.$e.$model->profile);
            $model->profile = '../files/cars/'.$e.$model->profile;
            $model->back->saveAs( $path.$f.$model->back);
            $model->back = '../files/cars/'.$f.$model->back;

            if( $model->save() ){
                Yii::$app->session->setFlash('success', 'Данные приняты');
            }else{
                Yii::$app->session->setFlash('error', 'Ошибка');
            }
        }

        $this->view->title = 'Добавить car';
        return $this->render('inpc', compact('model'));
    }

Аватара пользователя
leonenco
Сообщения: 128
Зарегистрирован: 2017.01.30, 22:42

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение leonenco » 2019.06.26, 00:55

Испавьте на это в контроллере:

Код: Выделить всё

            if( $model->save() ){
                Yii::$app->session->setFlash('success', 'Данные приняты');
            }else{
                var_dump($model->getErrors());
                die();
                Yii::$app->session->setFlash('error', 'Ошибка');
            }
и увидешь что не так, если и это не помогает: свмотри что сохраняешь и сравнивай с БД какие у тебя аттрибуты полей.
Последний раз редактировалось leonenco 2019.06.26, 23:35, всего редактировалось 1 раз.

Аватара пользователя
leonenco
Сообщения: 128
Зарегистрирован: 2017.01.30, 22:42

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение leonenco » 2019.06.26, 00:59

кстати вы уверены что они все:

Код: Выделить всё

            $model->photo = UploadedFile::getInstance($model, 'photo');
            $model->pers1 = UploadedFile::getInstance($model, 'pers1');
            $model->pers2 = UploadedFile::getInstance($model, 'pers2');
            $model->infas = UploadedFile::getInstance($model, 'infas');
            $model->profile = UploadedFile::getInstance($model, 'profile');
            $model->back = UploadedFile::getInstance($model, 'back');
отрабатывают нормально?

riaron
Сообщения: 49
Зарегистрирован: 2018.12.04, 14:12

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение riaron » 2019.06.26, 13:35

нашел одну ошибку, после исправления начал ругаться на gerErrors(), после закоментил gerErrors(), но все равно не сохраняется, а насчет

Код: Выделить всё

$model->photo = UploadedFile::getInstance($model, 'photo');
            $model->pers1 = UploadedFile::getInstance($model, 'pers1');
            $model->pers2 = UploadedFile::getInstance($model, 'pers2');
            $model->infas = UploadedFile::getInstance($model, 'infas');
            $model->profile = UploadedFile::getInstance($model, 'profile');
            $model->back = UploadedFile::getInstance($model, 'back');
все работает нормально


riaron
Сообщения: 49
Зарегистрирован: 2018.12.04, 14:12

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение riaron » 2019.06.26, 20:53

Проблема решена

Аватара пользователя
leonenco
Сообщения: 128
Зарегистрирован: 2017.01.30, 22:42

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение leonenco » 2019.06.26, 23:36

пост исправил, моя тайп ошибка.

Аватара пользователя
leonenco
Сообщения: 128
Зарегистрирован: 2017.01.30, 22:42

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение leonenco » 2019.06.26, 23:36

Кстати, что было не так? поделись

riaron
Сообщения: 49
Зарегистрирован: 2018.12.04, 14:12

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение riaron » 2019.06.27, 14:14

ничего закрыл включил заработало

riaron
Сообщения: 49
Зарегистрирован: 2018.12.04, 14:12

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение riaron » 2019.06.27, 14:38

Опят не работает. когда пишу чтоб ввводило echo model->power, то выводит значение которое я вписал в поле, но в базе после сохранения пишет значение по умолчанию null, в чем может быть проблема?

someweb
Сообщения: 544
Зарегистрирован: 2017.03.09, 10:12

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение someweb » 2019.06.27, 16:07

model->getErrors()
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.

riaron
Сообщения: 49
Зарегистрирован: 2018.12.04, 14:12

Re: не сохраняются данные в бд и ошибок не выдает

Сообщение riaron » 2019.06.27, 17:23

Я это исправлял. Дело в передаче данных в бд

Ответить