【发布时间】:2011-01-31 10:38:29
【问题描述】:
我正在尝试在 CakePHP 中为删除书签做一个不显眼的操作。 尽管它工作得很好,但我怀疑必须有更好的方法来做到这一点。有人可以指出我正确的方向吗?
function delete($id = null) {
$ok = $this->Bookmark->delete($id);
if($this->RequestHandler->isAjax()) {
$this->autoRender = false;
$this->autoLayout = false;
$response = array('status' => 0, 'message' => 'Could not delete bookmark');
if($ok) {
$response = array('status' => 1, 'message' => 'Bookmark deleted');
}
$this->header('Content-Type: application/json');
echo json_encode($response);
exit();
}
// Request isn't AJAX, redirect.
$this->redirect(array('action' => 'index'));
}
【问题讨论】:
-
我认为这是一种控制器方法?如果是这样,你不喜欢什么?
$response位对我来说似乎有点“笨拙”,我可能只使用响应代码,但我当然没有看到任何非常不雅的地方。 -
嗨!首先,我不确定在控制器或视图中处理响应是否是最佳实践。我认为在控制器中回显是不优雅的,为此使用视图是矫枉过正的。有什么想法吗?
-
是的。 :-) 在我自己的东西中,我选择不优雅(你的话,不是我的话)过分杀伤力。我讨厌文件系统混乱。如果响应简单明了(就像您的响应一样),我认为没有理由为其创建视图文件文件。你的也是一个系统响应,我认为它在控制器中是非常有效的。
标签: jquery ajax cakephp unobtrusive