save() 函数 Zend 框架
Posted
技术标签:
【中文标题】save() 函数 Zend 框架【英文标题】:save() function Zend Framework 【发布时间】:2013-01-06 13:26:23 【问题描述】:我在 Zend 的文档中找到了这个函数,更具体的在 Create model and Database Table 部分 (http://framework.zend.com/manual/1.12/en/learning.quickstart.create-model.html)。
这是在 Application_Model_GuestbookMapper 中:
public function save(Application_Model_Guestbook $guestbook)
$data = array(
'email' => $guestbook->getEmail(),
'comment' => $guestbook->getComment(),
'created' => date('Y-m-d H:i:s'),
);
if (null === ($id = $guestbook->getId()))
unset($data['id']);
$this->getDbTable()->insert($data);
else
$this->getDbTable()->update($data, array('id = ?' => $id));
现在我想将它集成到我的控制器中,但我不知道如何?
我创建了一个映射器实例并尝试将信息从我解码的 json 字符串传递给它,但我仍然收到错误...:
public function indexAction()
$mapper = new Application_Model_GuestbookMapper();
$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$json = file_get_contents('http://data.appsforghent.be/poi/apotheken.json');
$data = Zend_Json::decode($json);
foreach($data['apotheken'] as $row)
$mapper->save();
我知道我必须将 $data 传递给 save() 函数,但我不知道如何...该模型不适合 json-url,我只是想展示如何检索和解码 json .
谁能帮帮我?
【问题讨论】:
太棒了!但仍然无法将我的数据加载到我的数据库中...现在我收到此错误:完整性约束违规:1048 Column 'long' cannot be null...任何想法? 根据 $row 的内容,您可能需要对数据进行归一化以使其适合模型。 【参考方案1】:你需要传递给 $mapper->save();是 Application_Model_Guestbook 的一个实例。因此,希望您有一个 Application_Model_Guestbook 类,您可以在其中定义将数据数组设置为其属性的可能性,例如:
class Application_Model_Guestbook
private $email,$comment,$created;
public function __construct($data)
$this->email = $data['email'];
// etc add other variables
public function getEmail()
return $this->email;
然后调用它,使用:
foreach($data['apotheken'] as $row)
$guestbook = new Application_Model_Guestbook($row);
$mapper->save($guestbook);
我没有对此进行具体测试,但它应该让您了解如何实现您想要做的事情。
【讨论】:
以上是关于save() 函数 Zend 框架的主要内容,如果未能解决你的问题,请参考以下文章
Zend 框架 PhpUnit 测试错误由于在 null 上调用成员函数
如何在zend框架中为dojo动态树创建dojo数据onclick事件以实现程序化方法