Почему моя форма ActiveRecord теряет данные? Фреймворк Yii2

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

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

мой код:

-Просмотр формы (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>

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


person Fernando Andrade    schedule 07.11.2014    source источник


Ответы (1)


Только атрибуты safe могут принимать вводимые пользователем данные. Атрибут считается безопасным, если для него определен хотя бы один валидатор в 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 для получения дополнительной информации.

person david    schedule 07.11.2014
comment
Большое спасибо! это сработало, и теперь у меня есть материал для чтения, спасибо еще раз :) - person Fernando Andrade; 07.11.2014