2

我正在研究 Cakephp 2.x .. 我也看过很多教程并阅读过文档......但我没有得到一件事 .. 我看到在一些教程中他们在模型中编写查询,其中一些编写每个控制器和模型中的东西保持干净,除了它们添加验证规则等......我现在的编码方式就是这样

   class ContactsController extends AppController{

  public function index(){
    $this->layout='default';

    $id = $this->Auth->user('idUser');
    $data= $this->Contact->find('all',array(
        'conditions' => array('Contact.User_id' => $id)));
    $this->set('contacts',$data);

}

}

我在控制器中编写了find函数。我在一些教程中看到他们在模型类中编写了这个函数,然后在控制器中调用它。所以我想问什么是最好的方法或者什么是实际上的标准方法?我应该在控制器中编写所有代码并在模型中编写验证规则吗?我应该如何编码以使我的代码看起来干净且易于管理

4

2 回答 2

3

您想在模型中进行查询有几个原因:

  • 数据操作和获取是 MVC 模式中明确的模型任务
  • 如果在控制器中完成,则不能重用查询,简单的示例是您想从外壳和控制器中执行某些操作。
  • 模型比控制器更容易进行单元测试
  • 如果您需要更改查询,请在 ONE 模型中执行,而不是 10 个可能执行相同查询或方法的控制器。

例如,请在此处检查控制器和模型的 view() 方法

其他方法也一样。只需检查模型中有多少代码以及控制器中有多少代码,并尝试了解原因。

其他人在这里所说的是错误的:在控制器中进行查询显然没有标准。

于 2013-06-30T21:27:52.247 回答
1

我不同意方舟心。我认为你应该把它放在模型中。然后,您的模型本质上就变成了控制器的数据 API。你有更清晰的关注点分离。有什么缺点?您的模型中将包含更多方法。所以呢。

于 2013-06-30T18:55:56.237 回答