gpt4 book ai didi

codeigniter - 在 CodeIgniter 中的 Controller URI 段之前传递变量

转载 作者:行者123 更新时间:2023-12-04 06:07:04 25 4
gpt4 key购买 nike

我想在 URL 中的 Controller 段之前传递一些站点范围的验证变量。

例子:

默认网址为:

www.mysite.com/controller/method/variable/

有时我也希望有这样的 URL 来引用用户创建的此站点的子配置(主题、菜单等),这样用户就可以很好地共享此站点 URL,其他人可以通过他的自定义配置看到该站点.
www.mysite.com/username/controller/method/variable

这里 用户名 的定制部分base_url .它应该针对数据库进行验证并设置为 session 变量,以便稍后在我的 Controller 中使用它并更改主题。网站上的所有链接也将开始使用 www.mysite.com/username base_url 用这个输入网站后 用户名 在网址中。

解决这个问题的一种方法是像这样路由它:
controller/method/variable_name1/variable_value1/user_conf/username

...并将实现添加到我项目中的每个 Controller 。但这不是一个优雅的解决方案。

最佳答案

这是你追求的吗:

$route['(:any)/(:any)'] = '$2/$1';

您的所有函数定义都将用户名作为最后一个参数:
class Controller{function page(var1, var2, ..., varn, username){}}

或者,如果您只想在一个特定页面上,您可以执行以下操作:
$route['(:any)/controller/page/(:any)'] = 'controller/page/$2/$1'; //This will work for the above class.

或者,如果您希望它用于 Controller 中的许多功能,您可以这样做:
$route['(:any)/controller/([func1|func2|funcn]+)/(:any)'] = 'controller/$2/$3/$1';

关于codeigniter - 在 CodeIgniter 中的 Controller URI 段之前传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8233833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com