sharehua
(8080268)
July 26, 2009, 2:00pm
1
把authitem表做了model,还crud了一系列文件。
现在要create一条记录的时候。发现name的值会丢失,然后validate提醒,需要name输入。我跟踪了一下文件发现是在这里丢失的。
public function actionCreate(){
$model=new Authitem;
if(isset($_POST['Authitem'])){
//$_POST['Authitem']['name']这里有值
$model->attributes=$_POST['Authitem'];
//这里丢失值,没有复制过来。$model->name是空的
if($model->save()){
sharehua
(8080268)
July 29, 2009, 1:21am
2
把authitem表做了model,还crud了一系列文件。
现在要create一条记录的时候。发现name的值会丢失,然后validate提醒,需要name输入。我跟踪了一下文件发现是在这里丢失的。
public function actionCreate(){
$model=new Authitem;
if(isset($_POST['Authitem'])){
//$_POST['Authitem']['name']这里有值
$model->attributes=$_POST['Authitem'];
//这里丢失值,没有复制过来。$model->name是空的
if($model->save()){
知道原因了。因为name是主键,所以丢失。但yii为什么设计主键丢失?
zhex
(Luckyxz)
July 29, 2009, 2:09am
3
直接用authManager不就可以对authitem添加删除了吗
sharehua
(8080268)
July 29, 2009, 4:34am
4
没用那个。就算用,也要把view的值赋给model吧?
qiang
(Qiang Xue)
July 30, 2009, 2:31am
5
对,缺省情况下主键不是safe attribute (否则用户可能对此进行攻击)。你可以显式地对主键进行赋值,或者把它在safeAttributes里声明。