编辑带有可疑行为的记录时,没有更改slug

时间:2014-05-01 10:34:56

标签: javascript cakephp-2.3

CakePHP的:

public function edit($id)
        {
            if (!$id) 
            {
                throw new NotFoundException(__('Invalid ' . $this->modelClass));
            }

            $record = $this->{$this->modelClass}->findById($id);
            if (!$record) 
            {
                throw new NotFoundException(__('Invalid ' . $this->modelClass));
            }

            if ($this->request->is('post') || $this->request->is('put')) 
            {
                $this->{$this->modelClass}->id = $id;
                if ($this->{$this->modelClass}->save($this->request->data)) 
                {
                    $this->Session->setFlash($this->modelClass . ' has been updated.');
                    $this->redirect(array('action' => 'index'));
                } else {
                            $this->Session->setFlash('Unable to update your ' . $this->modelClass . '.');
                       }
        }

        if (!$this->request->data) 
        {
            $this->request->data = $record;
        }       
    };

我正在尝试更新自定义cms中的记录,这些自定义cms构建在cakephp框架中,并使用slugable行为来记录链接。但是当我们编辑记录并更改页面名称时,slug也会发生变化。但是在更新记录名称时我不想更改slug。

感谢您对此提供任何帮助。

2 个答案:

答案 0 :(得分:1)

为什么不从您正在编辑的表单中删除slug,或者在编辑中取消它?

unset($this->request->data[$this->modelClass]['slug']);

或者,如果您的问题是相反的,请确保您正确提交slu

答案 1 :(得分:0)

默认情况下,我们在编辑记录时不会更改slug。

作为模型设置的$ acts怎么样?

如果'更新'为true,将其设置为false或将其删除。