За последние 24 часа нас посетили 22590 программистов и 1280 роботов. Сейчас ищут 800 программистов ...

Данные с формы возвращают null

Тема в разделе "Yii", создана пользователем Kazzi, 27 май 2020.

Метки:
  1. Kazzi

    Kazzi Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    30
    Симпатии:
    0
    Здравствуйте опять) Всем добра!

    В общем вот такая загвоздка( Пишу регистрацию пользователей. и сразу же наткнулся на вот такую лажу. При отправке данных с формы они не проходят валидацию.

    Вот модель:

    PHP:
    1. <?
    2.  
    3. namespace app\models;
    4.  
    5. use yii\base\Model;
    6.  
    7.  
    8. /**
    9. *
    10. */
    11. class SignupForm extends Model
    12. {
    13.     public $username;
    14.     public $password;
    15.  
    16.     public function rules()
    17.     {
    18.         return [
    19.             [['username', 'password'], 'required'],
    20.         ];
    21.     }
    22.  
    23.  
    24.     public function attributeLabels()
    25.     {
    26.         return [
    27.             'username' => 'login',
    28.             'password' => 'Password',
    29.         ];
    30.     }
    31. }
    Вот акшон контроллера:

    PHP:
    1. public function actionSignup()
    2.     {
    3.         if (!Yii::$app->user->isGuest) {
    4.             return $this->goHome();
    5.         }
    6.  
    7.         $model = new SignupForm();
    8.  
    9.         if($model->load(Yii::$app->request->post()) && $modal->validate()){
    10.          
    11.             $user = new User;
    12.             $user->username = $model->username;
    13.             $user->password = \Yii::$app->security->generatePasswordHash($model->password);
    14.          
    15.             if($user->save()){
    16.                 Yii::$app->user->login($user);
    17.                 return $this->goHome();
    18.             }
    19.         }
    20.  
    21.         return $this->render('signup', compact('model'));
    22.     }
    Вот вьюха формы:

    PHP:
    1. <?
    2.  
    3. use yii\helpers\Html;
    4. use yii\bootstrap4\ActiveForm;
    5.  
    6. ?>
    7. <div class="row">
    8.     <div class="col-gl-4 mx-auto">
    9.         <? $form = ActiveForm::begin(); ?>
    10.  
    11.             <?= $form->field($model, 'username'); ?>
    12.             <?= $form->field($model, 'password')->passwordInput(); ?>
    13.  
    14.             <div class="form-group">
    15.                 <div class="col-lg-offset-1 col-lg-11">
    16.                     <?= Html::submitButton('Singup', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
    17.                 </div>
    18.             </div>
    19.         <? ActiveForm::end(); ?>
    20.     </div>
    21. </div>
    И вот гребаная ошибка((((

    Call to a member function validate() on null и указывает на строку, где fi с валидацией.

    Подскажите пожалуйста, что не так?(
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Kazzi нравится это.
  3. Kazzi

    Kazzi Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    30
    Симпатии:
    0
    Тут -


    А материться тут можно? :mad::mad::mad::mad: Весь день блин!!!!!!!! Я весь день потратил из за этой ?*№(?) буквы!! (((((((((((((((((( !!!!!!!

    Спасибо!
     
  4. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Есть официальная документация. Если он изучает какую то тему, ищи это же в документации. Не надо за ним печатать.
    --- Добавлено ---
    Я эти видео смотрел.
    https://yiiframework.com.ua/ru/doc/guide/2/start-installation/
    Справа менюшка, он зачитывает что там и типо сам печатает.
    --- Добавлено ---
    Если будешь искать более подробно, то сюда:

    https://www.yiiframework.com/doc/guide/2.0/ru
     
  5. Kazzi

    Kazzi Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    30
    Симпатии:
    0
    Я ее пытаюсь ковырять, но там пишут очень специфическим языком( Я плохо понимаю, что они хотят сказать. Вообще согласен, там материал подается очень хорошо, но для таких нубасин как я, это все же сложнее, чем воспринимать вот таких вот типов. Потому и смотрю их, пытаясь вообще хоть чуть чуть понять, что блин происходит. Я начал вникать в эту тему всего пару месяцев назад.
    --- Добавлено ---
    Теперь у меня в таблицу добавляются одни NULL :(
     
  6. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Ковыряй дальше)
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Отладчиком умеете пользоваться?
    --- Добавлено ---
    В какой IDE работаете?
     
  8. Kazzi

    Kazzi Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    30
    Симпатии:
    0
    Оххх... У меня сейчас сайт в работе. С его локальной версией я работаю в VSCode, а есть еще совсем черновая болванка, на которой я эксперименты провожу... Вот ее я мучаю тупо в Саблайне. То есть я сначала прописываю функционал и довожу до ума на болванке, потом это переношу на локальный сайт, там адаптирую, и уже потом файлзиллой выкладываю готовый код на тестовый домен хостинга, где клиент посмотреть может... Я все перепробовал, но ВСКод как-то больше всего понравился. Он бесплатный хотя бы. И не такой громоздкий.
     
  9. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Ну XDebug можно настроить и в VSCode, и даже в сублайне. Я обоими не пользуюсь, но знаю. Я горячий пропагандист отладчиков. Если что-то непонятно работает, надо смотреть вживую, что там в переменных
     
  10. Kazzi

    Kazzi Новичок

    С нами с:
    21 июн 2017
    Сообщения:
    30
    Симпатии:
    0
    Полностью согласен) Но можно использовать:
    echo '<pre>';
    var_damp($var);
    echo '</pre>';

    На счет XDebug я слышал, но пока не использовал ни разу, так что не могу сказать, что мне больше понравится. Сейчас нет времени разбираться с установками. Сдам сайт, там обязательно погляжу.