【发布时间】:2017-02-08 17:54:13
【问题描述】:
我正在使用 CodeIgniter v3.1.3
我有一个名为 User.php 的控制器,它主要包含所有用户管理功能(登录、注册、update_user、forgot_password、update_settings...)
我有一个名为 Profile.php 的视图,在该视图中,有两种可用的表单,我们称之为 Form1,用于更新用户信息(电子邮件、名字、姓氏)和另一个,我们称之为 Form2,它会更新用户设置(news_letter_subscription、website_theme、allowed_countries_login ...)
Form1 提交到用户控制器中的 update_user 函数
Form2 提交到用户控制器中的 update_settings 函数
每当我提交其中一种表单时,提交后,我的网址将变为 www.example.com/update_user 或 www.example.com/update_settings 而不是保持 www.example.com/profile (因为我的视图称为 profile ) .
我的路线如下:
$route['update_user']['POST'] = 'user/update_user';
$route['update_settings']['POST'] = 'user/update_settings';
我在 User.php 控制器中的 update_user 函数: http://pastebin.com/zQNn6Ykz
我怎样才能使提交后,URL 保持 /profile 而不是 /update_user 或 /update_settings ?
您还应该知道一件事,提交后我无法重定向到个人资料页面,因为我正在使用 load->view,因为我也在传递数据。
谢谢!
编辑:我可以通过许多其他周转来解决这个问题,例如我可以进行 AJAX 调用,或者将 update_user 和 update_settings 函数合并到一个与视图相同的函数 Profile() 并发送一个隐藏值和操作采取。但老实说,我正在寻找一种解决方案来解决我的问题,这可能吗?
【问题讨论】:
-
显示你的控制器功能
-
这是我在 User.php 控制器中的 update_user 函数:pastebin.com/zQNn6Ykz
-
先 update_user 并隐藏 update_settings 之后您可以尝试 update_setting
-
抱歉,您能详细说明一下吗?
-
到 server.com/profile?这就是视图的名称?这是否意味着您有一个
$route['profile']['POST'] = 'user/profile';和一个打开该视图的函数profile?
标签: php codeigniter