CakePHP:根据登录用户过滤内容

时间:2013-09-02 16:45:20

标签: php cakephp authentication filter

我正在使用用户身份验证构建一个小型CakePHP应用程序。

用户过滤内容的最佳做法是什么,以便用户只能看到自己的内容?

我看过这篇文章,但它似乎不是一个有效的选择,因为它意味着一个条件将被添加到每个动作

  

CakePHP: Filter Index() with session's user ID

是否建议在AppModel中添加一个beforeFilter,它将根据经过身份验证的用户ID进行过滤,或者Cake是否有内置的方法来执行此操作?

1 个答案:

答案 0 :(得分:1)

没有内置的方法可以做到这一点,并且有许多解决方案都可行。

最好的方法都取决于你的情况。在某些情况下,按照每个操作进行操作,就像您链接的问题一样,最好。在其他情况下,更通用的解决方案,例如为您的Model / s甚至为您的AppModel编写beforeFind方法,会更好。

哪种解决方案最好取决于您的具体要求。例如,如果用户绝对,始终只能查看自己的内容,并且每个表都通过user_id字段链接到用户,那么更通用的解决方案将起作用。

但是,如果它变得更加多样化,并且某些控制器只有一些操作需要根据当前登录用户进行限制,则需要一种不太通用的方法(例如您链接到的方法)。