gpt4 book ai didi

php - 在 CakePHP 中编辑没有主键的 MySQL DB 表中的数据

转载 作者:行者123 更新时间:2023-11-29 12:19:27 24 4
gpt4 key购买 nike

Windows系统上使用cakephp-2.6.3

我只需要编辑 ABCData/index.php 文件中列出的 MySQL 数据库表中的行数据。

Controller

    public function index() {
$this->set('abcdata', $this->ABCData->find('all'));
}

public function edit($custom_id = null) {
if (!$custom_id) {
throw new NotFoundException(__('Invalid entry'));
}

$post = $this->ABCData->findById($custom_id);
if (!$abcdata) {
throw new NotFoundException(__('Invalid entry'));
}

if ($this->request->is(array('post', 'put'))) {
$this->ABCData->custom_id = $custom_id;
if ($this->ABCData->save($this->request->data)) {
$this->Session->setFlash(__('Your ABCData has been updated.'));
return $this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('Unable to update your ABCData.'));
}

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

型号

class ABCData extends AppModel {
public $primaryKey = 'custom_id';
}

index.ctp

    <h3>ABCData list</h3>
<table>
<tr>
<th></th>
<th>field_1</th>
<th>field_2</th>
<th>field_3</th>
<th>...</th>
<th>...</th>
...
</tr>

<?php foreach ($abcdata as $abc): ?>
<tr>
<td><?php echo $this->Html->link('Edit', array('action' => 'edit', $abc['ABCData']['custom_id']));?></td>
<td><?php echo $abc['ABCData']['field_1']; ?></td>
<td><?php echo $abc['ABCData']['field_2']; ?></td>
<td><?php echo $abc['ABCData']['field_3']; ?></td>
<td>...</td>
<td>...</td>
...
</tr>
<?php endforeach; ?>
<?php unset($abcdata); ?>
</table>

编辑.ctp

<h1>Edit ABCata</h1>
<?php
echo $this->Form->create('ABCata');
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '16'));
echo $this->Form->input('custom_id', array('type' => 'hidden'));
echo $this->Form->end('Save ABCata');
?>

我拥有的只是一个带有外键字段的表。

此处 custom_id 只是一个唯一字段。

我收到此错误:

Database Error

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'ABCData.id' in 'where clause' ... ...

请帮忙。

最佳答案

正如评论中所说,如果您的模型中没有 id,则无法通过 id 进行搜索。你应该这样做

$post = $this->ABCData->findByCustomId($custom_id);

根据 Cake 约定,或者您可以指定条件,例如

$post = $this->ABCData->find('first', array('conditions' =>
array('ABCData.custom_id' => $custom_id)));

关于php - 在 CakePHP 中编辑没有主键的 MySQL DB 表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29255898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com