【发布时间】:2014-02-01 10:47:25
【问题描述】:
好的,假设有两个关联模型,其中主模型与另一个模型具有 hasMany 关系。前捐赠者有很多捐赠。我已经阅读了 cake 的大部分文档,并且我也注意到了这一点(来自文档):
'在使用关联模型时,重要的是要意识到 保存模型数据应始终由相应的 CakePHP 完成 模型。如果您要保存新帖子及其相关评论,则 您将在保存操作期间同时使用 Post 和 Comment 模型'(http://book.cakephp.org/2.0/en/models/saving-your-data.html)
正如@burzum 在我的另一个问题上所指出的那样:CakePHP - Controller or No Controller?,我仍在努力决定哪种方法最有效。
以前面提到的“捐赠者和捐赠”为例,假设我们希望用户向捐赠者添加捐赠。因此,对于用户添加捐赠,需要查看捐赠者,访问以下类型的 url:'domain/donors/view/1',这意味着用户当前正在查看 id 为 1 的捐赠者。然后在该视图中,让我们假设有一个按钮允许用户添加捐赠。现在从我被告知和读到的内容来看,add(donation) 动作应该属于donationsController。
让我们也假设 add(donation) 操作有它自己的视图。所以如果我在 'domain/donors/view/1' 用户被重定向到 'domain/donations/add/donor_id:1'然后使用检索捐助者的ID
$this->request->params['named']['post_id']
并像这样设置为FK:
`$this->request->data['Donation']['donor_id'] = $id;
但我有一种直觉告诉我,这不是正确的方法,当有关联的模型时,从一个控制器跳到另一个控制器感觉像是不好的做法。
对此有何见解?是否有可以应用或遵循的一般经验法则?可以将用户从donorsController 的视图操作重定向到donationsController 的添加操作吗?
提前致谢!
【问题讨论】:
-
太棒了!捐赠者和捐赠的定义是什么?
-
@Anubhav,你对捐赠者和捐赠的定义是什么意思?捐赠者代表捐赠者记录的 CRUD,其中存储捐赠者信息,如姓名、姓氏、捐赠计数等。捐赠与捐赠者相关联,血库工作人员将能够为注册捐赠者添加捐赠记录(捐赠者表)。谢谢
-
嗯,只有一条经验法则可以让您的代码保持干净和易于理解。捐赠者和捐赠控制者必须具有各自的功能。不要混合它们,休息一切都很好,你将在未来 1 -2 年内面临多次迭代,你会意识到那时你将能够理解当时需要什么。
-
@Anubhav 因此,如果我理解正确,每个控制器都必须有其自己的操作,并且只要检索到的数据“属于”该控制器的模型,那么最好使用该控制器并且它的视图代表该数据!队友的欢呼声!你帮了大忙!
标签: php cakephp cakephp-2.3