【发布时间】:2014-01-30 21:44:39
【问题描述】:
我目前正在构建一个网络应用程序,它有两个模型,分别是 Donor 和 Donation Models。它有多个用户角色。当员工用户第一次注册捐赠者时,我希望他被重定向到另一个允许他填写捐赠详细信息的表格(捐赠者在第一次捐赠成功后注册)。
首先,我是否应该创建一个捐赠控制器,并使用以下方式重定向用户:
return $this->redirect(array('controller'=>'donations','action'=>'add'));
要使上述方法起作用,我需要将新注册的捐助者的 ID 保存在这样的会话中:
$this->Session->write('id', $this->Donor->id);
所以用户被重定向到 url 中的“捐赠/添加”,这很好用。但是我认为这有一些缺陷。我在徘徊是否应该在 Donor 控制器中创建另一个名为“add_donation”的操作,该操作将具有其各自的“视图”。这个想法是能够形成这样的网址:'donors/add_donation/4'(4是donors_id!) 此 URL 遵循以下结构:'controller/action/id'
如果有人可以阐明最佳实践,或描述我的解决方案的任何警告(前者,使用会话等),请帮助兄弟!我会深深地感激你!提前致谢!
【问题讨论】:
-
您使用的是哪个版本的 Cake,为什么要标记其中三个?
-
它更有可能得到回复(更多关注者)。我目前的版本是 5.4.12.. 抱歉,如果这样做不合适,但我在这里绝望!
-
@user2678538 只需添加额外的检查 - 当您使用时:
'donors/add_donation/4' (4 being the donor_id ! )将传递的donor_id与Session->Auth中的比较,这样就不可能欺骗捐赠者。 :D 这只有在用户登录时才有可能!或者更好的是,从$this->Auth->user();获取用户ID
标签: php cakephp cakephp-2.0 cakephp-2.1 cakephp-2.3