我有这个代码我试图从我制作的表格中保存内容和标题。它有一个ID,自动增加数据库中添加的ID号,但标题和内容不是&不能保存在数据库中。如果我做错了,你可以查看我的代码吗?或者我缺乏的东西。
这是我的模型ContentForm.php
<?php
class ContentForm extends CActiveRecord{
public $content;
public $title;
public function tableName(){
return 'tbl_content';
}
public function attributeLabels()
{
return array(
'contentid' => 'contentid',
'content' => 'content',
'title' => 'title',
// 'email' => 'Email',
// 'usrtype' => 'Usrtype',
);
}
这是我的观点content.php
<div>
<p>User: <a href="viewuserpost">
<?php
echo Yii::app()->session['nameuser'];
?>
</a>
</p>
</div>
<h1>Content</h1>
<?php
$form=$this->beginWidget('CActiveForm', array(
'id'=>'contact-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
));
?>
Title:
<div class="row">
<?php
echo $form->textfield($model,'title');
?>
</div>
</br>
Body:
<div class="row">
<?php
echo $form->textArea($model,'content',array('rows'=>16,'cols'=>110));
?>
</div>
<div class="row buttons">
<?php
echo CHtml::submitButton($model->isNewRecord? 'Create':'Save');
?>
</div>
<?php $this->endWidget(); ?>
这是我的sitecontroller.php中的内容操作
public function actionContent(){
$model=new ContentForm;
if(isset($_POST['ContentForm'])) {
$model->attributes=$_POST['ContentForm'];
if($model->save())
$this->redirect(array('content','contentid'=>$model->contentid));
$this->redirect(array('content','title'=>$model->title));
$this->redirect(array('content','content'=>$model->content));
}
$this->render('content',array('model'=>$model));
}
请帮忙。
答案 0 :(得分:2)
删除
public $content;
public $title;
来自你的班级。
Yii使用PHP魔术方法。当您向类添加属性时,PHP不会调用它们,而是引用您明确写入的属性。
此外,如果您使用$model->attributes=$_POST['ContentForm'];
,则应添加一些验证。另一种变体是使用不安全的$model->setAttributes($_POST[ContentForm], false)
,其中false告诉Yii设置所有属性,而不仅仅是被认为是安全的。
注意,attributes
不是真正的Model属性,这是通过魔术方法访问的虚拟属性。
此外,您不需要三次重定向。这是HTTP重定向到其他页面。这一次,您应该只指定模型视图操作的路由及其参数,例如id。像这样$this->redirect(array('content/view','id'=>$model->contentid));
。
当然,最简单的方法是使用Gii创建新的模型和控制器。
答案 1 :(得分:0)
您可能错过了规则,请在您的模型ContentForm.php
中添加此规则public function rules()
{
return array(
array('content,title', 'safe'),
);
}
有关模型验证的更多信息
http://www.yiiframework.com/wiki/56/reference-model-rules-validation/