Почему моя форма активной записи теряет данные? Yii2 Framework

0

Я начинаю с рамки Yii, и это моя первая структура... к сути:

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

мой код:

-Form view (new.php)

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

<?php $form = ActiveForm::begin(); ?>

  <?= $form->field($model, 'Title') ?>
  <?= $form->field($model, 'PublicationDate')->input('date') ?>

  <?= $form->field($model, 'Content')->textarea(['rows' => 5]) ?>

  <?= $form->field($model, 'tags') ?>
<div class="form-group">
  <?= Html::submitInput('Submint', ['class' => 'btn-primary']) ?>
</div>

Модель статьи (Article.php):

<?php

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

class Article extends ActiveRecord{

  public $tags;

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

  public function rules()
  {
    return[
      [['Title', 'Content'], 'required'],
    ];
  }
}

Отладка:

<?php
use yii\helpers\Html;
?>
<p>You have entered the following information:</p>

<ul>
  <li><label>Title</label>: <?= Html::encode($model->Title) ?></li>
  <li><label>PublicationDate</label>: <?= Html::encode($model->PublicationDate) ?></li>
  <li><label>Content</label>: <?= Html::encode($model->Content) ?></li>
  <li><label>tags</label>: <?= Html::encode($model->tags) ?></li>
</ul>

заранее спасибо за ваше время :)

Теги:
yii2
activerecord

1 ответ

3
Лучший ответ

Только безопасные атрибуты могут принимать пользовательский ввод. Атрибут считается безопасным, если в rules() указан хотя бы один валидатор, определенный для этого атрибута. Если вы просто хотите объявить атрибут безопасным без какой-либо дополнительной проверки, вы можете использовать "безопасный" валидатор, например:

public function rules()
{
return[
  [['Title', 'Content'], 'required'],
  [['PublicationDate', 'tags'], 'safe'],
];
}

Для получения дополнительной информации посетите http://www.yiiframework.com/doc-2.0/guide-input-validation.html и http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html.

  • 0
    Большое спасибо! это сработало, и теперь у меня есть материал, чтобы прочитать thx еще раз :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню