为什么我的activerecord表单会丢失数据? Yii2框架

时间:2014-11-07 17:55:03

标签: php 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>

提前感谢您的时间:)

1 个答案:

答案 0 :(得分:3)

只有安全属性才能接收用户输入。如果在rules()中为该属性定义了至少一个验证程序,则属性被视为安全。如果您只是想在不进行任何进一步验证的情况下将属性声明为安全属性,则可以使用&#34; safe&#34;验证器,像这样:

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

查看http://www.yiiframework.com/doc-2.0/guide-input-validation.htmlhttp://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html了解详情。