重定向到控制器 - Codeigniter

时间:2016-10-19 06:49:45

标签: php codeigniter redirect controller

我在views文件夹的文件夹中有很多视图,例如在views / admin文件夹中。

This is a users view in admin folder, so the url is <code>localhost/file-sharing/admin/users</code>

当我编码

if (!empty($users->users)):
    foreach ($users->users as $user) {
          $link = site_url('ContentController/showActivities/' . $user->id);
           $what = $user->banned == 0 ? 'b':'u';
           $banned_t = $user->banned == 0 ? 'Banned':'Un-banned';

           echo '<tr id="user_'.$user->id.'">';
           echo '<td><div class="userimg"><img src="' . $user->profile_pic->medium . '"></div></td>';
           echo '<td>'.$user->name . '</td>';
           echo '<td>';
           echo $user->last_login == '' ? 'never' : $user->last_login;
           echo '</td>';
           echo $user->banned == 0 ? '<td><span class="label label-success">Active</span></td>' : '<td><span class="label label-danger">Banned</span></td>';
           echo '<td>'.$user->email.'</td>';
           echo '<td><div class="btn-group">
                          <button type="button" onclick="Buckty.user.edit($(this));"  data-toggle="modal" data-target="#editUser" data-id="'.$user->id.'" class="btn btn-danger">Edit</button>
                          <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
                            <span class="caret"></span>
                            <span class="sr-only">Toggle Dropdown</span>
                          </button>
                          <ul class="dropdown-menu" role="menu">
                            <li><a onclick="javascript:ref('.$user->id.')">Show Activities</a></li>
                            <li><a onclick="Buckty.user.ban($(this));" data-id="'.$user->user_hash.'" data-what="'.$what.'">'.$banned_t.'</a></li>
                            <li><a onclick="Buckty.user.remove($(this));" data-id="'.$user->id.'">Delete</a></li>
                          </ul>
                        </div></td>';
           echo '</tr>';
    }
endif;

这是我想重定向到控制器的代码

<li><a onclick="javascript:ref('.$user->id.')">Show Activities</a></li>

使用Javascript:

function ref(id) {
    window.open('ContentController/showActivities/'+id, '_blank');
}

但是,当我点击“显示活动”菜单时,它始终会重定向到http://localhost/file-sharing/admin/ContentController/showActivities/1,并且不会重定向到ContentController/showActivities控制器。如果网址为http://localhost/file-sharing/ContentController/showActivities/1

,则应重定向到该控制器

有人知道在这种情况下该怎么办?提前谢谢。

2 个答案:

答案 0 :(得分:1)

这个平台的

base_url()。让我告诉你一些事情。由于功能和兼容性原因,site_url()routes.php未定义网站网址。

首先,我不建议您不要使用控制器名称,尝试在site_url()内为您的控制器组织和制作路线,但现在让我们谈谈您的问题。

$site->site_url是您当前的网址。但是您可以非常简单地访问所有内容的全局设置。

全局变量简介

  • $ user ||这包含当前登录用户的数据,您可以在视图内的任何位置使用它
  • $ this-&gt; current_user ||这包含与上述变量类似的数据,但这应该用于控制器。
  • $ site ||这包含网站设置,您保存在数据库中的每个网站设置数据(从site_url到广告设置)
  • $ site-&gt; site_url ||这是您在此平台内使用网站网址的方式
  • $ this-&gt;网站 ||这应该在控制器内部用于获取站点设置

所以根据您的问题,您应该使用site_url();而不是$link = site_url('ContentController/showActivities/' . $user->id);

基本上改变了这个:

$link = $site->site_url.'ContentController/showActivities/' . $user->id;

到这个

site_url

或者如果我们谈论javascript那么javascript的全局变量也在那里。您应该使用function ref(id) { window.open('ContentController/showActivities/'+id, '_blank'); } 作为网站链接,因此请修改以下内容:

function ref(id) {
    window.location.replace(site_url + 'ContentController/showActivities/'+id, '_blank');
}

到这个

site_url

这里介绍了javascript的全局变量:

  • user_data ||这包含您的网站网址(来自网站设置)
  • site_info ||这包含当前用户的数据(一切只有密码不存在)
  • tran ||这包含网站设置数据。
  • current_folder ||这包含多语言翻译
  • current_folder ||这包含当前文件夹的哈希ID,您当前在其上
    • folder如果它位于根文件夹中则为0,否则为{{1}},如果它位于非功能视图中。

答案 1 :(得分:0)

试试这个:

function ref(id) {
    window.open('<?php echo base_url()?>ContentController/showActivities/'+id, '_blank');
}