我再次遇到问题,应该在CakePHP3中完成通过ajax进行部分视图upadtes。 从我的观点来看,有3种方法可以做到这一点:
我认为最有效的解决方案是变体2,因为控制器和视图逻辑分离。 变体1最有可能导致视图生成两次(按需,并在处理请求后),如下面的剪切:
public function ajaxRenderAuditDetails($id = null)
{
if ($id == null) {
return null;
}
if ($this->request->is("ajax")) {
$this->set("result", $this->viewBuilder()->build()->cell("audits", [$id]));
}
}
另一方面,Variant 3会在某些情况下将视图代码加倍 - 例如,相同的html将在ViewCell和客户端javascript中生成 处理此类功能的最佳做法是什么?