Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php yii不保存模型_Php_Yii - Fatal编程技术网

Php yii不保存模型

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

事件模型与事件的所有POST变量一起正确保存,而包只设置了Event_id,但没有设置属性(它们都为NULL)。我做错了什么

注意:事件对象已经由我的前任编程,包对象是我做的新添加

编辑:整个包类

  $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.. 
    );
}