【问题标题】:Redirect to controller - Codeigniter重定向到控制器 - Codeigniter
【发布时间】:2016-10-19 06:49:44
【问题描述】:

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

当我编码时

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 控制器。如果 url 是 http://localhost/file-sharing/ContentController/showActivities/1

,它应该重定向到该控制器

有人知道在这种情况下我应该怎么做吗?提前致谢。

【问题讨论】:

  • ref 你在哪里定义的?
  • 在js函数中。
  • console.log(id) 并检查 id 是否为空。
  • id 不为空。
  • 其实window.open('ContentController/showActivities/'+id, '_blank');这将从你的base_url开始,你的管理员base_url是正确的

标签: php codeigniter redirect controller


【解决方案1】:

Being Owner 这个平台。让我为你澄清几件事。出于功能和兼容性原因,base_url()site_url() 未定义站点 url。

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

site_url() 是您当前所在的网址。但是您可以非常简单地访问所有内容的全局设置。

全局变量介绍

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

所以根据您的问题,您应该使用$site-&gt;site_url 而不是site_url();

基本上改变这个:

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

到这里

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

或者如果我们谈论 javascript,那么 javascript 的全局变量也在那里。您应该使用site_url 作为站点链接,因此请编辑以下内容:

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

到这里

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

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

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      相关资源
      最近更新 更多