我只是尝试 Ion Auth 库,看起来真的很棒。
我有主控制器
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Main extends CI_Controller {
//Main page
public function index() {
$this->view_data['header'] = $this->load->view('main/header.php', '', true);
$this->view_data['footer'] = $this->load->view('main/footer.php', '', true);
$this->load->view('main/index', $this->view_data);
}
}
在主视图中,我有一个指向/login
登录控制器看起来像这样
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once(APPPATH.'controllers/secure.php');
class Login extends Secure {
//Login page
public function index() {
$this->load->library('ion_auth');
$this->view_data['header'] = $this->load->view('main/header.php', '', true);
$this->view_data['footer'] = $this->load->view('main/footer.php', '', true);
$this->load->view('login/index', $this->view_data);
}
}
登录控制器扩展了安全控制器,我有一个执行机制来检查用户是否登录。
安全控制器:
<?php defined('BASEPATH') OR exit('No direct script access allowed');
//If any class extends with this class, do some stuff to show loginform etc
class Secure extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->library('ion_auth');
//
// Require members to be logged in. If not logged in, redirect to the Ion Auth login page.
//
if( ! $this->ion_auth->logged_in()) {
redirect(base_url() . 'auth/login');
}
}
}
工作正常,并正确地重定向到用户的实际登录页面。
但我不希望它被重定向,而是嵌入作为main / index的一部分
而不是重定向我会返回auth登录模板,类似:
return $this->load->view('auth/login', {data used for loginform}, true);
有没有办法实现这个目标?或者我是否必须在安全控制器中创建特定功能,并根据这些函数返回的内容我将显示不同的模板?
我试过这个: * 安全控制器 *
<?php defined('BASEPATH') OR exit('No direct script access allowed');
//If any class extends with this class, do some stuff to show loginform etc
class Secure extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->library('ion_auth');
}
public function isLoggedIn() {
if( ! $this->ion_auth->logged_in()) {
$this->view_data['identity'] = '';
$this->view_data['message'] = '';
$this->view_data['password'] = '';
return $this->load->view('auth/login', $this->view_data, true);
}
else {
return '';
}
}
}
登录控制器
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once(APPPATH.'controllers/secure.php');
class Login extends Secure {
//Login page
public function index() {
$this->load->library('ion_auth');
$this->view_data['header'] = $this->load->view('main/header.php', '', true);
$this->view_data['footer'] = $this->load->view('main/footer.php', '', true);
$this->view_data['loginform'] = $this->isLoggedIn();
$this->load->view('main/index', $this->view_data);
}
}
然后我只看到输入字段和复选框,标签上没有文字......
任何人都可以指出我应该选择哪个方向来实现这个目标吗?请问我是否不清楚我的问题。
答案 0 :(得分:1)
您可以在其他视图中加载视图。这是另一个应该有帮助的答案: