CakePHP-站点脱机-管理员路由不工作
我在我的CakePHP-站点脱机-管理员路由不工作,cakephp,admin,authentication,Cakephp,Admin,Authentication,我在我的app_controllers.php文件中设置了以下代码,以控制当站点设置为脱机(site_status=0)时对站点的访问 当请求的地址如下所示时,一切都很正常: http://www.mydomain.com/articles 但是,当我有以下情况时,它不能正常工作 http://www.mydomain.com/admin/articles 它阻止正确访问站点,但无法使用$this->layout='offline'。它默认返回到默认布局 我需要做些什么来解决这个问题 谢谢大
app_controllers.php
文件中设置了以下代码,以控制当站点设置为脱机(site_status=0)时对站点的访问
当请求的地址如下所示时,一切都很正常:
http://www.mydomain.com/articles
但是,当我有以下情况时,它不能正常工作
http://www.mydomain.com/admin/articles
它阻止正确访问站点,但无法使用$this->layout='offline'
。它默认返回到默认布局
我需要做些什么来解决这个问题
谢谢大家! 首先我觉得不合适的是:
(!$this->Auth->user() == null)
这看起来非常错误,可能会导致您的问题。我建议将其改为:
(!is_null($this->Auth->user())
或
编辑
。您在$this->Auth->user()
的返回值后面追加了NOT
语句。因此,当用户登录时,您实际上是在询问false
是否等于null
,这当然不是,也永远不会是
。您不想检查$this->Auth->user()
的值是否等于null
,而是想检查$this->Auth->user()
的数据类型是否等于类型null
。简言之如果您只需要在If语句中使用“=”,那么您需要使用相同的==
检查或相同的not检查==代码>如果
的情况看起来很奇怪,你的。它们是:
如果站点脱机且用户登录
使用默认布局
否则
使用脱机布局并要求在所有页面上进行身份验证
也就是说,当站点在线或用户未登录时,您正在使用脱机布局。你确定这就是你想要的吗?我认为所有这些表达式,包括我代码中的表达式,都代表了相同的东西。不管怎样,我已经试过你的第一个建议!为空($this->Auth->user())
而我的代码仍保持相同的行为。我相信这就是Auth处理admin路由前缀的方式,但不知道如何修复它。你还有什么建议吗?我得去上班了。如果在我下车之前没有人回答你,我会详细说明我的答案。我会在我的问题中很快发布更多的代码,但是,我的想法是向所有未经验证的用户显示该网站为脱机。但是,如果站点标记为脱机,但用户已通过身份验证,则我们将使站点可用。我还没有完全实现ACL,但我的想法是允许管理员访问该站点,即使它处于脱机状态。
(!is_null($this->Auth->user())
($this->Auth->user() !== NULL)