1
我尝试使用AbstractRestfulController。我创建控制器类:如何处理错误(AbstractRestfulController)?
class MyController extends AbstractRestfulController{
public function getList(){
$data = array();
return new JsonModel(array(
'data' => $data,
));
}
public function get($id){
$data = array();
return new JsonModel(array(
'data' => $data,
));
}
public function create($data){
$data = array();
return new JsonModel(array(
'data' => $data,
));
}
public function update($id, $data){
$data = array();
return new JsonModel(array(
'data' => $data,
));
}
public function delete($id){
$data = array();
return new JsonModel(array(
'data' => $data,
));
}
}
和路由:
return array(
'router' => array(
'routes' => array(
'mylink' => array(
'type' => 'Segment',
'options' => array(
'route' => '/mylink[/:id]',
'constraints' => array(
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'MyModule\Controller\My',
),
),
),
),
),
'controllers' => array(
'invokables' => array(
'MyModule\Controller\My' => 'MyModule\Controller\MyController',
),
),
'view_manager' => array(
'strategies' => array(
'ViewJsonStrategy',
),
),
);
但是当用户调用错误的方法或错误的ID或其他任何东西会发生什么?我想亲自处理。怎么做?
但是,如果网址不正确?如果我在'template_map'中设置'error/404',它将返回标准文本/ html页面的视图/错误。我无法分配控制器/模块/无论处理错误? – Nips 2013-03-06 10:25:25
这不是你问的。对于一个不好的网址有更多的考虑,比如你的网站是否也提供标准的http页面?如果没有,你可以设计一个404视图策略,在路由404响应的情况下返回一个JsonModel。如果它也处理http,则必须提出一个策略,可以确定这是一个错误的api请求还是误输入链接的真实用户。我认为你需要考虑什么是可以接受的,就像我说的那样,处理你的客户错误不是你的责任。他们收到了404以及html而不是json响应应该就足够了。 – Crisp 2013-03-06 10:41:35