CodeIgniter View страница пуста

Прежде всего, я абсолютно новичок в CodeIgniter.

Я пытаюсь разработать простой CRUD страница с использованием CodeIgniter. До сих пор я только что создал страницу просмотра, без каких-либо CRUD особенность. Это просто обычная страница просмотра с таблицей, которая содержит данные моей модели, извлеченные из базы данных.

Вот код для моей страницы просмотра, которая работает нормально, имя файла — show_users.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CI CRUD</title>
</head>

<body>
<h2> Simple CI CRUD Application </h2>
<table width="600" border="1" cellpadding="5">
<tr>
<th scope="col">Id</th>
<th scope="col">User Name</th>
<th scope="col">Email</th>
<th scope="col">Mobile</th>
<th scope="col">Address</th>
</tr>
<?php foreach ($user_list as $u_key){ ?>
<tr>
<td><?php echo $u_key->id; ?></td>
<td><?php echo $u_key->name; ?></td>
<td><?php echo $u_key->email; ?></td>
<td><?php echo $u_key->address; ?></td>
<td><?php echo $u_key->mobile; ?></td>
</tr>

<?php }?>
</table>
</body>

</html>

Моя модель — users_model.php

<?php

class Users_model extends CI_Model {

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

$this->load->database();

}

public function get_all_users()
{
$query = $this->db->get('users');
return $query->result();
}

}

?>

Мой контроллер — users.php

  <?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Users extends CI_Controller {
function __construct()
{
parent::__construct();
#$this->load->helper('url');
$this->load->model('users_model');
}

public function index()
{
$data['user_list'] = $this->users_model->get_all_users();
$this->load->view('show_users', $data);
}
}
?>

Мой сервер базы данных MySQL, имя базы данных ci_test и мой стол users:

CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
`address` varchar(255) NOT NULL,
`mobile` varchar(15) NOT NULL,
PRIMARY KEY (`id`)
)

Моя страница просмотра показывает этот вывод:

Выход

Все идет нормально. Теперь, когда я пытаюсь изменить мою страницу просмотра show_users.php, страница загружена, но пуста.

Вот код моей модифицированной страницы просмотра, для которой я сталкиваюсь с вышеупомянутой проблемой:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>CI CRUD</title>
<script type="text/javascript">
function show_confirm(act,gotoid)
{
if(act=="edit")
var r=confirm("Do you really want to edit?");
else
var r=confirm("Do you really want to delete?");
if (r==true)
{
window.location="<?php echo base_url();?>index.php/users/"+act+"/"+gotoid;
}
}
</script>

</head>

<body>
<h2> Simple CI CRUD Application </h2>
<table width="600" border="1" cellpadding="5">
<tr>
<th scope="col">Id</th>
<th scope="col">User Name</th>
<th scope="col">Email</th>
<th scope="col">Mobile</th>
<th scope="col">Address</th>
<th scope="col" colspan="2">Action</th>
</tr>

<?php foreach ($user_list as $u_key){ ?>
<tr>
<td><?php echo $u_key->id; ?></td>
<td><?php echo $u_key->name; ?></td>
<td><?php echo $u_key->email; ?></td>
<td><?php echo $u_key->address; ?></td>
<td><?php echo $u_key->mobile; ?></td>
<td width="40" align="left" ><a href="#" onClick="show_confirm('edit',<?php echo $u_key->id;?>)">Edit</a></td>
<td width="40" align="left" ><a href="#" onClick="show_confirm('delete',<?php echo $u_key->id;?>)">Delete </a></td>
</tr>
<?php }?>
<tr>
<td colspan="7" align="right"> <a href="<?php echo base_url();?>index.php/user/add_form">Insert New User</a></td>
</tr>
</table>
</body>

</html>

Обратите внимание, что я еще ничего не изменил в своей модели и контроллере.

Кто-нибудь может пожалуйста указать где проблема? Любое удобное и эффективное решение для этого? Я использую Notepad ++ для разработки, без IDE.

РЕДАКТИРОВАТЬ: Хотя я нашел решение своей проблемы и принял его как ответ, я все еще не понимаю одну проблему.

В моей модели — users_model.phpУ меня есть строка:

    $this->load->database();

Но в уроке это было написано так:

    $this->load->database("ci_test");

Поэтому я забыл указать имя базы данных, которое ci_test, Я до сих пор не редактировал код модели, но моя страница просмотра теперь работает отлично. Так каково значение этого? Нужно ли указывать имя базы данных внутри $this->load->database() ? Это одна из причин, почему моя страница просмотра была пуста?

0

Решение

Это не проблема с вашей страницей просмотра.
Зайдите в папку настроек, откройте autoload.php

$autoload['helper'] = array('url');

Другой путь

Раскомментируйте #$this->load->helper('url'); to $this->load->helper('url');

<?php

class Users_model extends CI_Model {

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

$this->load->database();
$this->load->helper('url');

}

public function get_all_users()
{
$query = $this->db->get('users');
return $query->result();
}

}

?>
5

Другие решения

Ответ на ваш комментарий : $this->load->database()

Есть два способа подключения к базе данных:
«Автоматическое подключение» в application / config / autoload.php

$autoload['libraries'] = array('database');

Подключение вручную

Первый параметр этой функции может дополнительно использоваться для указания конкретной группы баз данных из вашего файла конфигурации, или вы можете даже передать значения подключения для базы данных, которая не указана в вашем файле конфигурации.

$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = "";
$config['char_set'] = "utf8";
$config['dbcollat'] = "utf8_general_ci";

$this->load->database($config);
2

Вместо этого <?php echo base_url();?>index.php / пользователь / add_form
Использование: <?php echo site_url('user/add_form');?>

1

Я думаю, что проблема в этой строке:

window.location="<?php echo base_url();?>index.php/users/"+act+"/"+gotoid;

может быть, вы забыли загрузить помощник URL?

0
По вопросам рекламы [email protected]