我正在使用Codeigniter Framework。实际上,我试图在视图中显示数组。但是它显示了一些错误。我&# 39;我检查了我的代码,但仍然无法找到错误。任何帮助将受到高度赞赏。
模型/ users_model.php
class Users_model extends CI_Model{
public function getUsers(){
return array(
'first' => 'Farhan Khan',
'second' => 'Abdul Wali',
'third' => 'Shahzaib Kamal'
);
}
}
控制器/ users.php
class Users extends CI_Controller{
public function index(){
$this->load->model('Users_model');
$data['users'] = $this->Users_model->getUsers();
$this->load->view('users_list', $data);
}
}
视图/ users_list.php
<!DOCTYPE html>
<html>
<head>
<title>Users List</title>
</head>
<body>
<?php
foreach ($users as $user) {
echo $user['first'];
}
?>
</body>
</html>
我得到的错误是:
遇到PHP错误
严重性:警告
消息:非法字符串偏移&#39;首先&#39;
答案 0 :(得分:0)
试试这样..
<!DOCTYPE html>
<html>
<head>
<title>Users List</title>
</head>
<body>
<?php
foreach ($users as $user) {
echo $user."<br/>";
}
?>
</body>
</html>
OR
<!DOCTYPE html>
<html>
<head>
<title>Users List</title>
</head>
<body>
<?php
foreach ($users as $key=>$value) {
echo $key."=>".$value."<br/>";
}
?>
</body>
</html>
答案 1 :(得分:0)
您只有一个由模型返回的一维array
。因此,当您执行foreach
循环时,您实际上正在迭代它并获得该数组的元素。
您可以通过修改视图来确认。
<?php
foreach ($users as $user) {
echo $user."<br/>";
}
//or you can simply do a var_dump($users);
?>
如果你想修复它,那么你需要返回一个多维数组。我假设您希望将来返回多个用户。
public function getUsers(){
$users = [];
$users[] = array(
'first' => 'Farhan Khan',
'second' => 'Abdul Wali',
'third' => 'Shahzaib Kamal'
);
return $users;
}
答案 2 :(得分:0)
你可以这样试试
请记住CodeIgniter 类的第一个字母和文件名仅大写,如here所述
型号: User_model.php 文件名
public function getUsers() {
return $this->db->get('users')->result_array();
}
控制器 Users.php 文件名
public function __construct() {
parent::__construct();
$this->load->model('user_model'); // User_model.php
}
public function index() {
$data['users'] = $this->user_model->getUsers();
$this->load->view('users', $data);
}
查看
foreach ($users as $user) {
echo $user['first']; // first will be a column name.
}
答案 3 :(得分:0)
你的阵列 -
$arr = array(
'first' => 'Farhan Khan',
'second' => 'Abdul Wali',
'third' => 'Shahzaib Kamal'
);
当你使用那个 -
打印这个数组时echo "<pre>";
print_r($arr);
然后输出就像那样 -
Array
(
[first] => Farhan Khan
[second] => Abdul Wali
[third] => Shahzaib Kamal
)
并在foreach内部使用索引类似于0,1,2,3的打印数组......但是这里不是数组中的任何索引,这就是为什么要给出这个错误..