3

是否可以直接从 Cakephp 2 中的视图调用模型函数?我知道我可以从控制器调用它并将值设置为视图,但如果我可以在视图中调用它会更好......

谢谢

4

3 回答 3

7

不,它违背了框架和核心 MVC 原则的全部要点。

只是不要这样做。

于 2012-11-15T11:36:44.233 回答
7

可以在控制器中使用相同的视图:

    App::import('Model', 'Department');
    $this->Department = new Department();
    $users = $this->Department->getUserOfDepartment($id);
于 2014-01-08T08:21:55.477 回答
-1

只是为了扩展@DavidYell 的答案。直接从视图调用模型确实违反了“整个框架和核心 MVC 原则”,但如果您需要视图中的动态数据,只需通过 AJAX 调用控制器来获取数据。“模式”如下:

  1. 初始化对控制器的 AJAX 请求(让我们说fetchData()方法。)
  2. 在该方法中处理请求:
    • 证实
    • 将布局设置为“ajax”(您必须创建它)
  3. 通过 Controller 的调用从 Model 中获取您需要的数据:

    $this->UsedModel->find();

  4. 通过呈现(例如)JSON 响应将您刚刚获取的数据返回到视图

现在数据将在视图中可用,并且您会一直遵循“良好做法”。实际上在视图中暴露任何模型是非常非常糟糕的。请不要这样做,或者切换到.NET ..:D

于 2012-11-16T07:03:15.320 回答