首页 / PHP / php-无法在yii中保存模型
php-无法在yii中保存模型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-无法在yii中保存模型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2053字,纯文字阅读大概需要3分钟。
内容图文
![php-无法在yii中保存模型](/upload/InfoBanner/zyjiaocheng/679/5ca6350a66b64f65b4fb89c9b25a2be6.jpg)
我在下拉菜单中添加了一个用于更新yii中的模型属性的ajax,但似乎模型没有保存在数据库中,并且在我检查模型时没有验证错误
风景
<?php echo CHtml::dropDownList('roomType', $bed->room_type, SiteBed::roomTypes(), array('class' => 'room-types',
'ajax' => array(
'type' => 'POST',
'url' => Yii::app()->createUrl("admission/admit/bedUpdate", 'ajax' => TRUE)),
'data' => array('Bed[room_type]' => 'js:this.value', 'bed_id' => $bed->bed_id),
'update' => '#Bed_room_type'
)
)); ?>
控制器
public function actionBedUpdate()
{
if(!isset($_POST['bed_id']))
throw new CHttpException(400, 'Bad Request');
if(!isset($_POST['Bed']))
throw new CHttpException(400, 'Bad Request');
$model = Bed::model()->findByPk($_POST['bed_id']);
if($model===null)
throw new CHttpException(404,'The requested page does not exist.');
$model->attributes = $_POST['Bed'];
$model->save();
// throw new CHttpException(422, 'Saving Error');
}
示范规则
/**
* @return array validation rules for model attributes.
*/
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('name, status, price, room_type, house_id', 'required'),
array('status, room_type, house_id', 'numerical', 'integerOnly'=>true),
array('name', 'length', 'max'=>150),
array('description', 'length', 'max'=>500),
array('price', 'length', 'max'=>10),
array('date_created, date_modified', 'length', 'max'=>14),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array('bed_id, name, description, status, price, room_type, house_id, date_created, date_modified', 'safe', 'on'=>'search'),
);
}
解决方法:
我认为您忘记为帖子请求添加csrf令牌
<?php echo CHtml::dropDownList('roomType', $bed->room_type, SiteBed::roomTypes(), array('class' => 'room-types',
'ajax' => array(
'type' => 'POST',
'url' => Yii::app()->createUrl("admission/admit/bedUpdate", 'ajax' => TRUE)),
'data' => array(
'Bed[room_type]' => 'js:this.value',
'bed_id' => $bed->bed_id,
'YII_CSRF_TOKEN' => Yii::app()->request->csrfToken
),
'update' => '#Bed_room_type'
)
)); ?>
内容总结
以上是互联网集市为您收集整理的php-无法在yii中保存模型全部内容,希望文章能够帮你解决php-无法在yii中保存模型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。