我有' c_id'而不是' id'在邮政表中
这是我的控制器
public function editContact( $id = null ) {
if( !$id ) {
throw new NotFoundException( __( 'Invalid Post' ) );
}
$contact = $this->Contact->findBycId( $id );
if( !$contact ) {
throw new NotFoundException( __( 'Invalid Post' ) );
}
if( $this->request->is( array( 'post', 'put' ) ) ) {
$this->Contact->id = $id;
//echo $this->Contact->cid;
if( $this->Contact->save( $this->request->data ) ) {
$this->Session->setFlash( __( 'Data Updated' ) );
return $this->redirect( array( 'action' => 'index' ) );
}
$this->Session->setFlash( __( 'Unable To update Data!' ) );
}
if( !$this->request->data ) {
$this->request->data = $contact;
}
}
我收到此错误
数据库错误 错误:SQLSTATE [42S22]:找不到列:1054未知列' Contact.id'在' where子句'
SQL查询:SELECT COUNT(*)AS
count
FROMlearnin_cakePHP
。contacts
ASContact
WHEREContact
。id
=&# 39; 19'
但是当我改变这一行时
$this->Contact->id = $id;
到
$this->Contact->cid = $c_id;
它作为新记录插入。
在我的编辑表格中有:
<input type="hidden" value="POST" name="_method">
我发现VALUE必须是PUT而不是POST
答案 0 :(得分:1)
确保您的模型
public $primaryKey = 'c_id';
在控制器中,使用
if ($this->request->is(array('post', 'put'))) {
$this->Contact->id = $id;
if( $this->Contact->save($this->request->data)) {
// ...
}
}
答案 1 :(得分:0)
将primaryKey添加到Contact.php:
public $primaryKey = 'c_id';