我编写了一个编辑函数来更新新闻的信息,我的代码:
这是控制器文件功能:
public function editnews($id) {
$this->layout = "news"; //tynemc call by this statement
$this->loadModel('News'); //model call
$this->loadModel('Category'); //load news category
if ($this->request->is('post')) {
if (move_uploaded_file($this->request->data['News']['image_url']['tmp_name'], WWW_ROOT . 'media/'. $this->request->data['News']['image_url']['name'])) {
$this->request->data['News']['image_url'] = time() . $this->request->data['News']['image_url']['name'];
}$this->News->save($this->request->data['News']);//data save by this statement
$msg = '<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong> News update successfully </strong>
</div>';
$this->Session-> setFlash($msg);
return $this->redirect('editnews');
}
if (!$this->request->data) { // id wise data search
$data = $this->News->findById($id);
$this->request->data = $data;
}
$this->set('categories', $this->Category->find("list"));//categories load in dropdown
}
Run Code Online (Sandbox Code Playgroud)
这是ctp文件表单动作代码:
<?php echo $this->Form->create('News', array(
'inputDefaults' => array(
'label' => false,
'div' => false
),
'id' => 'form-validate',
'class' => 'form-horizontal',
'novalidate' => 'novalidate',
'enctype' => 'multipart/form-data',
'controller' => 'admins',
'action' => 'editnews'
)
);
?>
Run Code Online (Sandbox Code Playgroud)
我没有编辑标题,图像,newsdetail,我无法保存新闻信息,为什么它像这样工作,我如何纠正我的功能编辑记录?
我认为您面临表单操作问题。尝试使用此代码进行操作。
<?php
echo $this->Form->create("News",array(
'inputDefaults' => array(
'label' => false,
'div' => false
),
'url' => array(
'controller' => 'admins',
'action' =>'editnews'
),
'id' => 'form-validate',
'class' => 'form-horizontal',
'novalidate' => 'novalidate',
'enctype' => 'multipart/form-data'
)
);
?>
Run Code Online (Sandbox Code Playgroud)
并尝试将此代码作为函数。
public function editnews($newsid = null) {
$this->layout = "news";
$this->loadModel('News');
$this->loadModel('Category');
$this->News->id = $newsid;
if ($this->request->is('get')) {
$this->request->data = $this->News->read();
}
else {
$data = $this->request->data;
}
if ($this->News->save($data)) {
$this->Session->setFlash("Newsletter angelegt");
$msg = '<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong> News update successfully </strong>
</div>';
$this->Session->setFlash($msg);
$this->redirect(array( 'controller' => "admins", "action" => "manage_newses"));
}
else
{
$this->Session->setFlash("not updated");
$this->render();
}
}
if (!$this->request->data) {
$data = $this->News->findById($id);
$this->request->data = $data;
}
$this->set('categories', $this->Category->find("list"));}
Run Code Online (Sandbox Code Playgroud)