gpt4 book ai didi

php - 如何将yii中的输入保存到数据库

转载 作者:行者123 更新时间:2023-11-29 08:02:53 25 4
gpt4 key购买 nike

我有这个代码,我试图保存我制作的表单中的内容和标题。它有一个 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',
);
}

这是我的 View 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));

}

请帮忙。

最佳答案

删除

public $content;
public $title;

来自你的类(class)。

Yii 使用 PHP 魔法方法。当您向类添加属性时,PHP 不会调用它们,而是引用您显式编写的属性。

此外,如果您使用 $model->attributes=$_POST['ContentForm'];,则应该添加一些验证。另一种变体是使用不安全的 $model->setAttributes($_POST[ContentForm], false),其中 false 告诉 Yii 设置所有属性,而不仅仅是被认为安全的属性。

注意,attributes不是真正的模型属性,这是通过魔术方法访问的虚拟属性。

此外,您不需要三个重定向。这是 HTTP 重定向到其他页面。这次,您只需指定模型 View 操作的路由及其参数(例如 id)即可。就像这样 $this->redirect(array('content/view','id'=>$model->contentid));

当然,最简单的方法是使用 Gii 创建带有操作的新模型和 Controller 。

关于php - 如何将yii中的输入保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23334213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com