请求似乎已处理但服务器返回错误页面

时间:2011-05-22 19:11:46

标签: zend-framework zend-db zend-db-table

因为我再次使用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));
    }
}

1 个答案:

答案 0 :(得分:1)

转到application \ configs,你会看到有趣的文件:

application.ini

按Ctrl + F键入“错误”,您就会明白下一步该做什么。