#yii框架学习之路#想使用自动填充时,填充不上去

今天在使用yii实现一个超级简单的blog功能,然后在评论之后保存,再返回此页面的时候,出现了错误,最后再出来是填充的问题

这里使用了$blog_attributes想把前台获得的blog_id填充进去$blog里面,但是出错了,但是$comment却能够填充成功:

if(isset($_POST['Blog_comment']) && isset($_POST['Blog_main'])){
			$blog->attributes = $_POST['Blog_main'];
			$comment->attributes = $_POST['Blog_comment'];
			$comment->blog_id = $blog->blog_id;
			$comment->save();
			$blog = $blog->showBlog($blog->blog_id);
			$this->render("showBlog",array("blog"=>$blog,"comment"=>$comment));
		}else{
			throw new CHttpException(500,"comment fail");
		}
然后在帮助下使用
echo '<pre>';print_r($_POST);var_dump($_POST['Blog_main']);exit();
输出:
Array
(
    [Blog_main] => Array
        (
            [blog_id] => 1
        )

    [Blog_comment] => Array
        (
            [comm_content] => qqq
        )

)
array
  'blog_id' => string '1' (length=1)
这就证明了值是传过来的,是填充的时候出来问题,后来把blog_main和blog_commnet两个model进行比较,发现blog_main里面的rules没有required这边的东西,加上数据库表not null字段的required之后,填充就成功了。
不知道为什么会没有,一般gii生成的都是会把not null约束的弄成required的。
最后我发现,要用CActiveRecord自动填充,必须把主键字段弄成在model的rules()里面的required才行,这是为什么呢?有没有大神回答?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值