CodeIgniter控制器/视图困境


CodeIgniter controller/view dilemma

我已经创建了一个简单的注册/登录系统,它(我认为)到目前为止运行良好。

现在我想实现它的一些功能到我的网站。

控制器/main.php :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Main extends CI_Controller
{
    public function index()
    {
        $this->home();
    }
    public function home()
    {
        $this->load->view('home.php');
    }
}

视图/home。:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Home</title>
</head>
<body>
<div id="container">
    <?php if ($this->session->userdata('is_logged_in')): ?>
        logged in as: <?php echo $this->session->userdata('username'); ?></br>
        <a href="<?php echo base_url().'login/logout'; ?>">Logout</a>
    <?php else: ?>
        not logged in</br></br>
        <?php echo form_open('login'); ?>
        <?php echo form_error('username'); ?>
        <input type="text" name="username" placeholder="Login" />
        </br>
        <?php echo form_error('password'); ?>
        <input type="password" name="password" placeholder="Password" />
        </br></br>
        <div><input type="submit" value="Sign in" /></div>
        <?php echo form_error('login_validation'); ?>
        </form>
    <?php endif ?>
</div>
</body>
</html>

在CI中这是正确的做事方式吗?

对于控制器部分,而不是使用home(),你可以直接在index()中加载视图,因为内部你从index导航到home()没有任何特定的原因。

加载视图也不需要在你的文件中添加"。php"扩展名,你可以这样做:

$this->load->view('home');

其中home.php是位于application/views/

中的文件

要显示错误消息,您可以使用另一种最佳方式,即在config/form_validate .php中定义验证规则(在数组格式中),只需使用下面的代码来逐个显示所有消息

<?php echo validation_errors()?>