Создание движка на MVC. Создаем возможность добавления пользователя в базу данных через админ панель
Здарова всем, сегодня мы продолжим создавать наш движок и займемся созданием возможности добавления пользователя через админ панель.
Откроем контроллер user.php и создадим 3 метода, также изменим метод index.
public function index() {
$this->view->userList = $this->model->userList();
$this->view->render('user/index');
}
public function create() {
$data = array();
$data['login'] = $_POST['login'];
$data['password'] = md5($_POST['password']);
$data['role'] = $_POST['role'];
$this->model->create($data);
header('Location: '.URL.'user');
}
public function edit($id) {
// будет сделано позже
}
public function delete($id) {
// будет сделано позже
}
Создадим модель user_model.php
class User_Model extends Model {
public function __construct() {
parent::__construct();
}
public function userList() {
$sth = $this->db->prepare('SELECT id, login, role FROM users');
$sth->execute();
$sth->fetchAll();
return $sth->fetchAll();
}
public function create($data) {
$sth = $this->db->prepare('INSERT INTO users(`login`, `password`, `role`)
VALUES(:login, :password, :role)');
$sth->execute(array(':login' => $data['login'], ':password' => $data['password'], ':role' => $data['role']));
}
}
Теперь откроем файл index.php, который находится в views/user.
<h1>User</h1>
<form method="post" action="<?php echo URL;?>user/create">
<label>Login</label><input type="text" name="login"><br>
<label>Password</label><input type="text" name="password"><br>
<label>Role</label>
<select name="role">
<option value="default">Default</option>
<option value="admin">Admin</option>
</select><br>
<label> </label><input type="submit">
</form>
<hr>
<table>
<?php
foreach($this->userList as $key => $value) {
echo '<tr>';
echo '<td>'.$value['id'].'</td>';
echo '<td>'.$value['login'].'</td>';
echo '<td>'.$value['role'].'</td>';
echo '<td><a href="#">Edit</a> <a href="#">Delete</a></td>';
echo '<br>';
}
?>
</table>
Итак, пока что остановимся на этом. Сегодня мы сделали возможность добавления пользователя в базу данных через админ панель. Спасибо за внимание и удачи!
-
- Михаил Русаков
Комментарии (2):
В методе userList модели User ошибка, два раза вызывается fetchAll() и как результат возвращается пустой массив
Ответить
А где разграничение прав? Все имеют доступ к user
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.