很是奇怪,authitem这个model

把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为什么设计主键丢失?

直接用authManager不就可以对authitem添加删除了吗

没用那个。就算用,也要把view的值赋给model吧?

对,缺省情况下主键不是safe attribute (否则用户可能对此进行攻击)。你可以显式地对主键进行赋值,或者把它在safeAttributes里声明。