Model view controller CFWheels-过滤器和x27问题;除了';。冲突的操作名称
我有一个过滤器设置,它运行一个函数,检查用户会话是否出现在某些操作上,例如:Model view controller CFWheels-过滤器和x27问题;除了';。冲突的操作名称,model-view-controller,coldfusion,railo,cfwheels,Model View Controller,Coldfusion,Railo,Cfwheels,我有一个过滤器设置,它运行一个函数,检查用户会话是否出现在某些操作上,例如: <cffunction name="init"> <cfset filters(through="checkLogin", except="login,register,signin,create,home,profile") /> </cffunction> 问题是,这些是动作名称…与我拥有的其他控制器冲突 例如,我有两个控制器“用户”和“链接”。
<cffunction name="init">
<cfset filters(through="checkLogin", except="login,register,signin,create,home,profile") />
</cffunction>
问题是,这些是动作名称…与我拥有的其他控制器冲突
例如,我有两个控制器“用户”和“链接”。其中每个都有一个名为“创建”的操作,因此我的URL如下所示:
/用户/创建/
/链接/创建/
过滤器如何知道与哪个控制器关联?有没有办法在“except”子句中的某些“actions”前面加上控制器名称
例如,可能类似于:
<cffunction name="init">
<cfset filters(through="checkLogin", except="user/login,user/register,user/signin,link/create,main/home,user/profile") />
</cffunction>
我记得我试过这个,但没用就坏了
希望你明白我在说什么。我不想把每一个动作都命名为完全唯一的名称
谢谢,
Michael。您可以使用基本继承来完成以下任务:
<!--- controllers/Controller.cfc --->
<cffunction name="init">
<cfargument name="checkLoginExcept" type="string" required="false" default="">
<cfset filters(through="checkLogin", except=arguments.checkLoginExcept)>
</cffunction>
如果另一个子系统总是希望运行checkLogin
,则它不应传递checkLoginExcept
的值:
<!--- controllers/Foo.cfc --->
<cffunction name="init">
<cfset super.init()>
</cffunction>
谢谢-这正是我想要的!我从来没有想过CFC的整个继承方面……这是一个很好的建议。
<!--- controllers/Foo.cfc --->
<cffunction name="init">
<cfset super.init()>
</cffunction>