合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
isPublic是打破登陆壁垒,可以跳过登陆判断的功能。 在base.php的关系类中,是必不可少的。比如文章控制器,游客可以查看某文章,登陆后依然可以查看此文章。则可以避免同样的代码书写到两处。更好的实现权限控制。 isPublic可以设置为下列三中类型的值 1. bool 2. string 3. array[string,string] 当设置为BOOL类型时,是整个控制器都受到影响的。 当设置为STRING类型时,是字符串值对应的方法受到影响。 当设置为ARRAY[string,string]类型时,代表数组中的每个string对应的方法都将受到影响。 以下就是对isPublic判断的关键代码。 ``` /** * 是否是无需登录即可访问路径 * @param Request $request * @return bool */ public function isPublic(Request $request) { if ($this->isPublic === true){ return $this->isPublic; }else{ if (is_array($this->isPublic)){ foreach ($this->isPublic as $item){ if ($request->action() == strtolower($item)){ return true; } } }elseif (is_string($this->isPublic) && $this->isPublic == $request->action()){ return true; } } return false; } ```