Php CodeIgniter 3中未定义的变量
请在这方面帮助我…我正在学习CodeIgniter,我被这个错误卡住了。一定是有一些愚蠢的错误。 我正在为此使用xampp软件。 它不断弹出未定义的变量行 表名为“用户” 视图文件名为try 模型文件名为trydb 控制器文件名为condb 错误Php CodeIgniter 3中未定义的变量,php,database,codeigniter,Php,Database,Codeigniter,请在这方面帮助我…我正在学习CodeIgniter,我被这个错误卡住了。一定是有一些愚蠢的错误。 我正在为此使用xampp软件。 它不断弹出未定义的变量行 表名为“用户” 视图文件名为try 模型文件名为trydb 控制器文件名为condb 错误 A PHP Error was encountered Severity: Notice Message: Undefined variable: rows Filename: views/try.php Line Number: 12 Ba
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: rows
Filename: views/try.php
Line Number: 12
Backtrace:
File: C:\xampp\htdocs\ciagain\application\views\try.php
Line: 12
Function: _error_handler
File: C:\xampp\htdocs\ciagain\application\controllers\Welcome.php
Line: 27
Function: view
File: C:\xampp\htdocs\ciagain\index.php
Line: 292
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/try.php
Line Number: 12
Backtrace:
File: C:\xampp\htdocs\ciagain\application\views\try.php
Line: 12
Function: _error_handler
File: C:\xampp\htdocs\ciagain\application\controllers\Welcome.php
Line: 27
Function: view
File: C:\xampp\htdocs\ciagain\index.php
Line: 292
Function: require_once
查看文件
<?php
class Site_model extends Model {
function getAll() {
$q = $this->db->get('user');
if($q->num_rows()>0) {
foreach ($q->result() as $row) {
$data[] = $row;
}
return $data;
}
}
}
?>
<?php
class Site extends CI_Controller {
function index() {
$this->load->model('trydb');
$data['rows'] = $this->trydb->getAll();
$this->load->view('try', $data);
}
}
?>
连接数据库
模式文件
<?php
class Site_model extends Model {
function getAll() {
$q = $this->db->get('user');
if($q->num_rows()>0) {
foreach ($q->result() as $row) {
$data[] = $row;
}
return $data;
}
}
}
?>
<?php
class Site extends CI_Controller {
function index() {
$this->load->model('trydb');
$data['rows'] = $this->trydb->getAll();
$this->load->view('try', $data);
}
}
?>
控制器文件
<?php
class Site_model extends Model {
function getAll() {
$q = $this->db->get('user');
if($q->num_rows()>0) {
foreach ($q->result() as $row) {
$data[] = $row;
}
return $data;
}
}
}
?>
<?php
class Site extends CI_Controller {
function index() {
$this->load->model('trydb');
$data['rows'] = $this->trydb->getAll();
$this->load->view('try', $data);
}
}
?>
默认控制器
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->view('welcome_message');
}
public function tryagain(){
$this->load->view('try');
}
}
这不是错误
,而是一个通知
严重性:通知
要解决此问题,可以定义变量或禁用通知。我更喜欢第一个
像
为什么要在模型中加入foreach循环?您可以使用以下选项:
function getAll() {
$q = $this->db->get('user');
$data = $q->result();
return $data;
}
按照DS9的建议,在视图文件中使用下面的命令
if(isset($rows) && sizeof($rows)>0)
{
foreach($rows as $r)
{
}
}
删除第12行}和?>之间的空格。这会有帮助的。此外,没有Codeigniter 4:)您的模型文件名是站点\ U模型
,为什么要加载trydb
?@Dray好的,谢谢,但它仍然不起作用。因为我是第一次这样做,我需要在配置文件夹文件中做一些更改吗?谢谢你的建议,但是$data的值正在从控制器传递到视图,我可以创建那个变量吗?我想我的控制器文件代码有问题。谢谢你的回复,但我仍然收到相同的通知。我是否必须第一次编辑配置文件夹文件才能连接到数据库?请检查更新的代码,并告知是否出现任何通知。我已更新了代码,但没有从我的用户表打印任何输出。(没有任何通知)我已重新检查了您的代码。您使用了以下代码:Site\u model extends model。。您应该在最新版本的codeigniter中使用site_模型扩展CI_模型。你能发布网址吗?你真的要加载视图文件try.php吗?我已经检查了这个站点模型扩展了CI\u模型…但它仍然不工作