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。
感谢您对此提供任何帮助。
答案 0 :(得分:1)
为什么不从您正在编辑的表单中删除slug,或者在编辑中取消它?
unset($this->request->data[$this->modelClass]['slug']);
或者,如果您的问题是相反的,请确保您正确提交slu
答案 1 :(得分:0)
默认情况下,我们在编辑记录时不会更改slug。
作为模型设置的$ acts怎么样?
如果'更新'为true,将其设置为false或将其删除。