我正在使用Code Igniter,我有一个观点。我的视图页面没有显示错误,但也没有显示我请求的数据。我想,我的配置和数据库都很好... 任何的想法 ?我在这里做错了吗? 我在mac 4.4.1和最新版本的代码点火器3.1.7上使用最新版本的mamp。
先谢谢你们的帮助;)
查看
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<body>
<div>
<p> <?php
echo 'Trying to display:' . $data . ' yes?';
?> </p>
</div>
</body>
</html>
模型
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome_model extends CI_Model {
function __construct()
{
parent::__construct();
}
function get_secret($id)
{
$this->db->where('id', $id);
$this->db->select('secret');
$query = $this->db->get('tch_api');
if ($query->num_rows==1) {
foreach ($query->result() as $row) {
// tried with this line too : $secret = $row->secret; and without the following one same result
$data[] = $row->secret;
}
return $data;
}
}
}
控制器
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->model('welcome_model');
$secret = $this->welcome_model->get_secret(1);
$data = array(
'data' => $secret
);
$this->load->view('welcome_message', $data);
}
}
答案 0 :(得分:1)
视图中的$ data将是一个数组 并且echo无法打印数组,请尝试使用print_r
视图
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div>
<p>
<?php
echo 'Trying to display:';
print_r($data);
?>
</p>
</div>
</body>
</html>
答案 1 :(得分:0)
你做了一些奇怪的事情。首先在你的get_secret
函数中,你只需要一行,因此一个值可以用你的逻辑进行秘密判断;因此,您应使用row()
而不是result()
。此外,我希望您的问题是(1)当数据库中不存在$id
的项目时,您的函数不返回任何内容;(2)您尝试回显数组(这将导致数组到字符串转换)。假设您只想获得secret
$id = 1
的值,您应该执行以下操作:
function get_secret($id)
{
$this->db->where('id', $id);
$this->db->select('secret');
$query = $this->db->get('tch_api');
if ($query->num_rows==1) {
return $query->row()->secret;
} else {
return '';
}
}
其余代码应该有效。如果您仍未看到任何结果,请验证是否存在$id = 1
行,因为这可能是唯一的其他问题。
答案 2 :(得分:0)
控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->model('welcome_model');
$data['data'] = $this->welcome_model->get_secret(1);
$this->load->view('welcome_message', $data);
}
}
模型:
function get_secret($id)
{
$this->db->where('id', $id);
$this->db->select('secret');
$query = $this->db->get('tch_api');
if ($query->num_rows==1)
{
return $query->row->secret;
}
else
{
return "";
}
}
只需在视图中显示
<?php echo $data;?>
答案 3 :(得分:0)
你试过isset
了吗?
请更改视图:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
<body>
<div>
<p> <?php
if (isset($data))
{ echo 'Trying to display:' . $data . ' yes?';} else { echo 'No data found' ;} ?> </p>
</div>
</body>
</html>
<强>更新强>
假设您从上面的代码中想要从表中获取Id 1的数据并在您的视图中显示它。
请进行以下更改,然后重试。
<强>模型强>
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Welcome_model extends CI_Model {
function __construct()
{
parent::__construct();
}
function get_secret($id)
{
$this->db->where('id', $id);
$this->db->select('secret');
$query = $this->db->get('tch_api');
return $query->result();
}
}
&GT;
<强>控制器强>
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('welcome_model','wl');
}
public function index()
{
$data['secret'] = $this->wl->get_secret(1);
$this->load->view('welcome_message', $data);
}
}
?>
查看强>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Data Fetching</title>
</head>
<body>
<div>
<p><?php
//testing 1
if(isset($data)){var_dump($data);}
//testing 2
if (isset($data))
{ echo 'Trying to display:' . $data . ' yes?';} else { echo 'No data found' ;} ?> </p>
</div>
</body>
</html>
请尝试此操作并在此处发布您的结果..
如果问题已修复,请将其标记为答案。