在CodeIgniter中调用模型函数

在CodeIgniter中调用模型函数,codeigniter,model,Codeigniter,Model,我尝试使用CodeIgniter的方式与我在RoR中的工作方式相同,然后在视图中使用模型中定义的函数,等等。让我举例说明: 我的用户控制器 <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Users extends MY_Controller { public function __construct() { parent::__construct();

我尝试使用CodeIgniter的方式与我在RoR中的工作方式相同,然后在视图中使用模型中定义的函数,等等。让我举例说明:

我的用户控制器

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Users extends MY_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function show($id) {
        $user = $this->user_model->get($id);
        $this->data['user'] = $user;
        $this->load_view('users/show');
    }

}

...
我怎样才能做到这一点


注意:如果我回显$user->email,效果很好…

我认为您只是缺少传递到视图中的数据。$this->load->view()上还有一个输入错误

$user->email 还有,你在用什么


这里的问题是CI的工作方式与rails不同。在这里:

$user=$this->user\u model->get($id)

当您对对象调用
get
时,您正在分配一个由CI的ActiveRecord实现动态创建的对象,因此,该对象将不具有
who
方法。然而,这将起作用:

$this->user\u model->who()

因为在该范围内,在控制器中,
user\u model
只是您的
user\u model
类的一个实例,在该类中声明了
who


我的建议是为这种功能使用。CI模型不能像Rails模型那样工作

谢谢,我使用的是一个MY_Controller类,它有一个load_view方法。如果你想要一些错误的东西,你可能想看看Laravel。
...
<main>
    <h3><?= $user->who() ?></h3>
</main>
...
$user->email
$this->load->view('users/show', $this->data);