Php yii不保存模型
事件模型与事件的所有POST变量一起正确保存,而包只设置了Event_id,但没有设置属性(它们都为NULL)。我做错了什么 注意:事件对象已经由我的前任编程,包对象是我做的新添加 编辑:整个包类Php yii不保存模型,php,yii,Php,Yii,事件模型与事件的所有POST变量一起正确保存,而包只设置了Event_id,但没有设置属性(它们都为NULL)。我做错了什么 注意:事件对象已经由我的前任编程,包对象是我做的新添加 编辑:整个包类 $model=new Event('create'); $model->attributes=$_POST['Event']; if($model->save()){ $pkg = new Package(); $pkg->attributes=$_PO
$model=new Event('create');
$model->attributes=$_POST['Event'];
if($model->save()){
$pkg = new Package();
$pkg->attributes=$_POST['Package'];
$pkg->event_id = $model->id;
$pkg->save();
}
如果它不起作用,那么您可以尝试,在save()
之前有validate()
方法:
这将告诉什么是错误
不要直接保存,请在保存前验证它 如果要通过以下方式设置属性:
$model=new Event('create');
$model->attributes=$_POST['Event'];
if($model->validate()){
$model->save();
}
else{
echo CHtml::errorSummary($model);
}
然后,您必须为任何可以这样设置的属性设置规则
你需要这样的东西:
$pkg->attributes=$_POST['Package'];
您需要为任何要以这种方式设置的属性设置规则
如果没有为属性设置规则,则只能通过$pkg->attribute\u name=$value代码>
像array(“”,'safe','on'=>'search'),
或array(“”,'numeric'),
这样的规则不起任何作用(因为属性列表为空)
阅读更多有关验证的信息我相信您的电视机缺少了一些东西,它没有通过验证。你能在这两个模型中发布你的验证吗?我已经为Package添加了规则,它们是生成的Package类中的字段是什么?此数组(“”,'numerical')
不是正确的规则。你能用你的整个Package.php类更新吗
$model=new Event('create');
$model->attributes=$_POST['Event'];
if($model->validate()){
$model->save();
}
else{
echo CHtml::errorSummary($model);
}
$pkg->attributes=$_POST['Package'];
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('package_name', 'required'),
array('package_name', 'length', 'max' => 255),
// or
array('package_name', 'length', 'max' => 255, 'on' => 'insert'),
// at least (when no validation is required):
array('package_name', 'safe'),
// ...
// and so on..
);
}