我有 CodeIgniter 2.1.3 扩展了下面的 HMVC插件,我一直跟着它到最后,让它在基本示例中没有问题地工作。但是现在我想使用 BitAuth 身份验证库扩展我的应用程序,并且我想将它作为一个模块来实现。
所以我已经根据插件的文档完成了所有步骤:
我创建了一个带有控制器和视图的文件夹 auth,它带有 BithAuth 库,并调用了模块控制器和方法,但这给了我一个 404 错误。
例如,当我打电话时,我注意到测试模块和我的 bithauth 模块之间存在一个差异
<?php Modules::run('module/controller/method'); ?>
this 在测试模块上,然后访问 localhost/home/index 页面显示主页视图并呈现模块视图。但是,当我在我的 bitauth 模块上调用它并访问时,localhost
我被重定向到localhost/bithauth_controller/bitauth_method
并引发 404 错误。
我的文件夹结构:
->application
-->controllers
-->views
-->models
--->modules/auth/controllers
--->modules/auth/vews/examples
--->modules/auth/models
我的家庭控制器映射到家庭 url:localhost
class Home extends MX_Controller {
public function index()
{
$this->load->view('home');
}
}
及其视图文件:
<html>
<head>
<title>Shop: index</title>
</head>
<body>
<?php Modules::run('auth/Example/index'); ?>
</body>
</html>
现在在 auth 文件夹中,我有 bithauth 控制器:
class Example extends MX_Controller
{
/**
* Example::__construct()
*
*/
public function __construct()
{
parent::__construct();
$this->load->library('bitauth');
$this->load->helper('form');
$this->load->helper('url');
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
}
public function index()
{
if( ! $this->bitauth->logged_in())
{
$this->session->set_userdata('redir', current_url());
redirect('example/login');
}
$this->load->view('example/users', array('bitauth' => $this->bitauth, 'users' => $this->bitauth->get_users()));
}
}
以及 auth/views 中的视图:一个简单的形式
<body>
<?php
echo '<table border="0" cellspacing="0" cellpadding="0" id="table">';
echo '<caption>BitAuth Example: Users</caption>';
echo '<tr><th width="1">ID</th><th>Username</th><th>Full Name</th><th>Actions</th></tr>';
if( ! empty($users))
{
foreach($users as $_user)
{
$actions = '';
if($bitauth->has_role('admin'))
{
$actions = anchor('example/edit_user/'.$_user->user_id, 'Edit User');
if( ! $_user->active)
{
$actions .= '<br/>'.anchor('example/activate/'.$_user->activation_code, 'Activate User');
}
}
echo '<tr>'.
'<td>'.$_user->user_id.'</td>'.
'<td>'.$_user->username.'</td>'.
'<td>'.$_user->fullname.'</td>'.
'<td>'.$actions.'</td>'.
'</tr>';
}
}
echo '</table>';
echo '<div id="bottom">';
echo anchor('example/logout', 'Logout', 'style="float: right;"');
echo anchor('example/groups', 'View Groups');
if($bitauth->is_admin())
{
echo '<br/>'.anchor('example/add_user', 'Add User');
}
echo '</div>';
?>
</body>
我注意到重定向发生是由于我解决if()
了方法中的语句,index()
但现在我没有显示我的模块视图,也没有收到任何错误。