Yii2 Implode beforeSave无效

时间:2017-05-31 05:25:09

标签: php yii2

基本上,我有一个模型,我显示到标准复选框列表,其值为:

我从模特那里得到了这个

echo $model->bundle_numbers;

Array
(
  [0] => 1
  [1] => 2
  [2] => 3
)

所以,在控制器中,

if ($model->load($request->post()) && $model->save()) {
return [
                'forceReload' => '#crud-datatable-pjax',
                'title' => "Create new OutgoingPipe",
                'content' => '<span class="text-success">Create Outgoing Pipe success</span>',
                'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) .
                    Html::a('Create More', ['create'], ['class' => 'btn btn-primary', 'role' => 'modal-remote'])

            ];
}

现在我想将数组更改为字符串格式: 所以,使用beforeSave:

 public function beforeSave($insert){
    $this->bundle_numbers = implode(",", $this->bundle_numbers);
    return parent::beforeSave($insert); // TODO: Change the autogenerated stub
}

在规则中,基于Gii生成器模型,我删除了字符串规则

[['bundle_numbers'], 'string', //deleted

但是插入数据仍然没有成功。 没有显示错误。

请告知。

**更新**

我可以看到所有错误,

$model->save(false);
$model->getErrors();

现在,我可以看到,我在另一条规则中有很多错误。 顺便说一句,谢谢你的帮助。

3 个答案:

答案 0 :(得分:2)

public function beforeSave($insert){
if (parent::beforeSave($insert)) {
         $this->bundle_numbers = implode(",", $this->bundle_numbers);
        return $this->bundle_numbers;
    } else {
        return false;
    }
}

试试这个

答案 1 :(得分:1)

尝试加载或验证时出现错误

  if ($model->load($request->post()) {
     if ($model->save()){
        return [
                      'forceReload' => '#crud-datatable-pjax',
                      'title' => "Create new OutgoingPipe",
                      'content' => '<span class="text-success">Create Outgoing Pipe success</span>',
                      'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) .
                          Html::a('Create More', ['create'], ['class' => 'btn btn-primary', 'role' => 'modal-remote'])

                  ];
      } else {
        var_dump('save fail');
        var_dump( $model->errors);
  } 

答案 2 :(得分:0)

喜欢这个

display_width