因为我再次使用ZendFramework,所以我开始“扩展”QuickStart应用程序。
我使用ZendX jQuery组件作为View Helper。
我有一个Controller MonsterController
除了indexAction之外还有两个动作:
的addAction
attackAction
两者都通过_getParam($param, $default)
获取参数。
addAction的示例查询是/monster/add/dragon/health/100/attackDamage/23
。
attackAction只需要一个Id。
实际问题是,如果我调用其中任何一个,我会收到“应用程序错误”。 除了具有“应用程序错误”的普通页面之外,没有堆栈跟踪或其他任何内容。 哪个不应该发生。
有趣的是,addAction实际上执行了将所需怪物添加到数据库的操作,但是attackAction什么也没做。
public function attackAction()
{
$id = $this->_getParam("id", null);
$mapper = new Application_Model_MonsterMapper();
$monster = new Application_Model_Monster(array("Id" => $id, "health" => 1));
$mapper->save($monster);
}
public function addAction()
{
$monster = new Application_Model_Monster();
$monster->setName($this->_getParam("name", ""))
->setHealth($this->_getParam("health", 0))
->setAttackDamage($this->_getParam("attackDamage", 0));
$mapper = new Application_Model_MonsterMapper();
$mapper->save($monster);
}
public function save(Application_Model_Monster $model)
{
$data = array(
'name' => $model->getName(),
'health' => $model->getHealth(),
'attackDamage' => $model->getAttackDamage()
);
if (null === ($id = $model->getId())) {
unset($data['id']);
$this->getDbTable()->insert($data);
} else {
$this->getDbTable()->update($data, array('id = ?' => $id));
}
}
答案 0 :(得分:1)
转到application \ configs,你会看到有趣的文件:
application.ini
按Ctrl + F键入“错误”,您就会明白下一步该做什么。