2013-07-02 36 views
0

我正在cakephp 2.x ..我的webapp网址是这样的http://www.myweb.com/ ..所以在那之后,我将用户重定向到登录后启动页面..“ http://www.myweb.com/users/gettingstarted” ......我想要是我想要一个像这样的网址..蛋糕php设置您的自定义网址

http://www.myweb.com/gettingstarted... 

所以为了做到这一点我不能让一个控制器名称,因为在CakePHP中gettingstartedü不能创建一个控制器,如果你没有在你的分贝类似的表名..希望你得到这..可能是有可能的..但不知道我该怎么做到这一点..

+0

你*可以*创建一个控制器,如果你在db中没有类似的名字...但是忽略它,你能更好地解释你想要的吗?我知道你想要一个'http://www.myweb.com/gettingstarted ...'url,但是'getting start',你想让它成为另一个控制器中的一个动作吗?像'UsersController-> gettingstarted'。请澄清。 – Nunser

+0

@Nunser对不起,正是......我想要的是我想要一个像这样的网址“com/gettingstarted”..为了实现这个..我必须做一个控制器,我不想...我有一个功能名称在一些其他控制器开始...我想调用该函数没有控制器名称进来的url ...例如,我想重定向像这样$ this-> redirect $ this-> redirect('/ gettingstarted'); – hellosheikh

回答

0

routes.php添加规则(最好是之前任何其他规则)

//this will send www.web.com/gettingstarted to UsersController->gettingStarted() 
Router::connect('/gettingstarted', 
       array('controller' => 'users', 'action'=>'gettingstarted')); 
//this is the default route for www.web.com 
Router::connect('/', array('controller' => 'users', 'action' => 'index')); 

随着那我假设你有你的UsersController一个gettingstarted行动。哦,而且你没有将变量传递给动作。否则,这个规则会有点不同。

对于所有这些“网址更改”,请阅读Routes doc。知道如何管理网址可能很有用。

编辑 如果你希望用户成功登录后,被重定向到入门页面,改变你的UsersController的登录操作

public function login() { 
    //all your login actions 
    //if user is logged in 
    $this->redirect(array('controller'=>'users', 'action'=>'gettingstarted')); 
} 

这将您重定向到www.web.com/gettingstarted

+0

so yup ..你有我..现在接下来的问题是我应该替换这个路由器::连接('/',数组('控制器'=>'用户','行动'=>'索引')); ..因为当我这样做www.web.com ..我来到我的索引页面,由于这个网址..我应该用它替换它..我不认为这是一个好主意..因为在索引页面我有一个登录页面 – hellosheikh

+0

这真的取决于你希望你的网站是如何(一个真正与其他问题没有太大关系)。如果您希望“入门”页面成为用户在进入“www.web.com”时看到的第一页,那么您应该更换它。但我个人不推荐它,“入门”通常是您在索引上显示的内容(作为链接),以使网站更加用户友好,而不是每个人都看到的强制选项,他们是否已经知道如何获取是否开始。 *但是!*不要完全删除该规则,如果您删除该规则,蛋糕将不知道如何处理“www.web.com”。 – Nunser

+0

好的谢谢你的提示..所以你是说,登录后我不能让这样的网址'www.web.com/gettingstarted'..好吧..现在只有当我做一个新的控制器这个和然后把所有的功能放在索引函数中......但问题是..蛋糕扔错误说你没有在你的数据库名称中的表入门​​ – hellosheikh