gpt4 book ai didi

zend-framework - 由于缺少父项,无法刷新行。 Zend 框架

转载 作者:行者123 更新时间:2023-12-04 00:59:24 24 4
gpt4 key购买 nike

当我尝试保存时,我收到错误“无法刷新行,因为缺少父级”。这是我的代码

abstract class Webapp_Model_Resource_Db_Table_Abstract
extends Zend_Db_Table_Abstract
{
/**
* Save a row to the database
*
*
* @param array $info The data to insert/update
* @param Zend_DB_Table_Row $row Optional The row to use
* @return mixed The primary key
*/

public function saveRow($info, $row = null)
{
if (null === $row) {
$row = $this->createRow();
}
$columns = $this->info('cols');
foreach ($columns as $column) {
if (array_key_exists($column, $info)) {
$row->$column = $info[$column];
}
}

return $row->save();
}
}

当我调用 saveRow() 方法时,我传入 $_POST 值 ($form->getValues())

我已经在同一个应用程序中将这个类与我的其他模块重用了,但现在我收到了这个错误,我不知道为什么。我的 table 很简单:
CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`headline` varchar(100) DEFAULT NULL,
`snippet` varchar(500) DEFAULT NULL,
`full_text` text,
`author` varchar(100) DEFAULT NULL,
`publish_from` date DEFAULT NULL COMMENT 'Publish date',
`publish_to` date DEFAULT NULL COMMENT 'Take it down or mark as draft after this date',
`datecreated` timestamp NULL DEFAULT NULL COMMENT 'First created on',
`revised` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Timestamp for the last time it was revised',
`draft` tinyint(1) DEFAULT '0' COMMENT 'Should not be published',
`departments_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=214 DEFAULT CHARSET=utf8 COMMENT='Stores news articles';

有人知道我在做什么错吗?

::::::::::::::ADDTION::::::::::::::
public function saveNews($post,$defaults = array())
{

//get the form
$form = $this->getForm('article' . ucfirst($validator));
//validate
if(!$form->isValid($post)) {
return false;
}


//get fitered values
$data = $form->getValues();
//apply defaults
foreach($defaults as $col => $value) {
$data[$col] = $value;
}

//get the article if it exists
$article = array_key_exists('id', $data) ?
$this->getNewsById($data['id']) : null;


return $this->saveRow($data, $article);
}

最佳答案

当您为主键传递一个空值时,Zend 似乎返回这个值而不是插入的自动增量值——即使使用自动增量值正确创建了一个新行,插入的值也不会返回。

也许您的问题与此有关。如果是这样,请尝试在保存之前取消设置 id 字段。

关于zend-framework - 由于缺少父项,无法刷新行。 Zend 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441224/

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