我正在使用 Yii 框架开发一个网页,我想做像 facebook 一样的 url 管理。这是我的网址www.mywebpage.com/user/profile/id/10但我不想这样显示这个网址,我想这样显示www.mywebpage.com/yogi我可以在 Yii 中做吗?请任何人帮助我。
2 回答
我认为您需要的所有信息都在这里:http ://www.yiiframework.com/doc/guide/1.1/en/topics.url
查看这篇文章开始:http: //yiitutorials.net/easy/easy-url-rewriting-with-yii
您将基本上将用户自定义 URL 存储在数据库中。因此,示例 URL 将是http://example.com/user/userurl
在您的主配置中,您可以设置如下规则:
user/<customurl:.+> => 'user/view' //second part is the controller/action
该规则定义了一个带有“http://example.com/user/”的 URL,斜杠后面的部分可以被一个名为“customurl”的 GET 变量访问。然后,您可以像这样访问用户自定义 URL:
$_GET['customurl'];
并查询用户记录,如下所示:
$user = User::model()->find("customurl = '".$_GET['customurl']."'");
如下所述,这是来自真实网站的示例。在此示例中,URL 如下所示:http : //website.com/blog/ {post_title}/{post_id}
所以这个规则是这样的:
london-blog/<post_title:.+>/<post_url:.+> => 'blog/viewpost'
所以在我们的博客控制器中,我们有一个名为 viewpost 的操作(见上文,规则是如何指向这个控制器/操作的?),它看起来像:
public function actionViewpost(){
$blogpost = Blog::model()->find("post_title = '".$_GET['post_title']."'");
...
}
因此,任何具有 london-blog/some_value/some_value 格式的 URL 都将指向配置中指定的控制器操作。然后,您可以使用配置中定义的变量名称访问 some_value 部分(< :.+> 中的位)
希望有帮助!