gpt4 book ai didi

php - Zend 框架保存而不是插入更新

转载 作者:行者123 更新时间:2023-11-29 13:18:43 25 4
gpt4 key购买 nike

我想使用save方法来保存表单数据。但是当我调用对象上的保存时,它会给出以下错误。如果我在对象上调用插入方法,效果很好。 fatal error :调用未定义的方法

Application_Model_Content::save() 位于/var/www/html/ZendTecAdmin/application/controllers/AdminController.php 第 44 行

以下是我的 Controller 操作代码

$content  = new Application_Model_Content();
if($this->_request->getParams('id')){
$id = $this->_request->getParams('id');
$row = $content->find($id)->toArray();
if($row){
$form->populate($row[0]);
}
}

if ($this->_request->getPost('Publish')) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) { //If form data is valid
unset($formData['Publish']);
$content->save($formData);
//$content->insert($formData); //it works fine
}
}

以下是我的模型

<?php
class Application_Model_Content extends Zend_Db_Table
{
protected $_name = "content";

}

请帮我解决这个问题。

最佳答案

您可以获取 Row 对象并对其使用 save() :

$select = $content->select()->where('id = ?',$id);
$row = $content->fetchRow($select);
$row->name = 'John'
$row->birthdate = 1980-11-04;
$row->save();

要扩展 Row Class,您可以将 protected $_rowClass = 'Application_Model_Row_User'; 添加到模型中,然后创建 class Application_Model_Row_User extends Zend_Db_Table_Row_Abstract。现在您可以将自己的方法添加到此类中,如下所示:

public function dateToAge(){
return (int)floor( (strtotime(date('Y-m-d')) - strtotime($this->birthdate)) / 31556926);
}

及以后:

$select = $content->select()->where('id = ?',$id);
$row = $content->fetchRow($select);
$name = $row->name
$age = $row->dateToAge();

您可以在这里阅读更多信息:http://framework.zend.com/manual/1.12/en/zend.db.table.row.html

关于php - Zend 框架保存而不是插入更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21154606/

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