php - CodeIgniter 模型和属性

标签 php codeigniter

我有一个与 CI 模型特定实例的属性相关的问题。例如:

有一个名为 project_model 的模型。在模型中它有一个调用 Get_Projects 的方法:

$total_projects = $this->project_model->Get_Projects($options);

当它被调用时,它会在模型​​中创建一个属性,如下所示:

$query = $this->db->get('projects');//query

$this->num_rows = $query->num_rows();

return $query->result();

所以在调用该方法后,在 Controller 中,我需要访问 num_rows:

$num_rows = $total_projects->num_rows;

(我知道你们中的一些人可能会质疑在 Controller 中使用 num rows 背后的原因。这与设置分页有关。可能有更好的方法来做,但没有时间在这个特定项目中。)

我的问题是这会造成语法错误:

Severity: Notice
Message: Trying to get property of non-object
Filename: controllers/projects.php
Line Number: 110 ($num_rows = $total_projects->num_rows;)

首先这是为什么?我正在考虑使用这个: $this->project_model::num_rows 代替?但是 num_rows 不会特定于 $total_rows 对象,对吗?所以它只适用于整个模型。

顺便说一句:我阅读了有关模型的 CI 指南,但根本没有关于创建模型实例的任何信息。

已编辑:我需要 num_rows 属性的结果是特定于对象的。例如:

$a=$this->project_model->Get_Projects($options);
$b=$this->project_model->Get_Projects($options);
$num_rows = $this->project_model->num_rows;

最后一行将得到 $b num_rows 的结果而不是 $a。那么我该如何调用它才能使它特定于对象呢? (显然我可以在第二次调用之前将其存储在变量中。)

最佳答案

发生这种情况是因为您的变量 $total_projects 没有该类的实例。它仅包含 Get_Projects() 函数的结果。

在完成所有操作后,您应该尝试 $num_rows = $this->project_model->num_rows(未测试)

关于php - CodeIgniter 模型和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9393238/

相关文章:

php - 带有查询的数组对象

php - 空格、换行符、制表符;它们会影响服务器性能吗?

php - 由于未安装 MySQLnd,MySQLi 准备好的语句显示错误

php - 搜索两列并回显结果的范围

javascript - 在 php foreach 循环中创建一个 javascript 倒数计时器

php - 奇怪的 PHP 错误,它从何而来?代码点火器

Codeigniter:获取记录和总和

php - 数组与表(PHP/MySQL)

php - 无法访问关联数组值

codeigniter - 在 codeigniter 中防止 SQL 注入(inject)