Я пытаюсь настроить пластины php для одного из моих проектов.
Один из методов в модели проверяет адрес электронной почты, предоставленный новым пользователем, и сообщает если электронная почта, которую они пытаются использовать, существует или нет.
Что-то вроде
class UserModel extends BaseModel
{
public $errors = [];
public function validate()
{
if (filter_var($this->request->post['email'], FILTER_VALIDATE_EMAIL) === false) {
$this->errors[] = 'Invalid email';
}
if ($this->emailExists($this->request->post['email'])) {
$this->errors[] = 'Email already exist';
}
}
protected function emailExists($email)
{
$sql = 'SELECT * FROM user_account WHERE email = :email';
-----
-----
$stmt->execute();
return $stmt->fetch() !== false;
}
}
и в контроллере
public function register()
{
$this->load->getModel('UserModel');
if ($this->model_UserModel->registerUser($this->request->post)) {
echo "Success ... load (redirect) second page";
} else {
$data ['error'] = $this->model_UserModel->errors;
echo $this->template->render('home/home', $data);
}
}
Если электронная почта существует, и я дам дамп $ В data ['error'] написано "Email Уже существует", как определено в методе validate в UserModel.
Теперь я пытаюсь получить сообщение об ошибке в моем домашнем шаблоне, добавив эти строки в tpl. file
<?php if (!empty($this->e($errors))): ?>
<?php foreach($errors as $error): ?>
<li><?=$this->e($error)?></li>
<?php endforeach ?>
<?php endif;?>
Но теперь, если я нажимаю на страницу регистрации, шаблон говорит:
Примечание: неопределенная переменная: ошибки в C: \ xampp \ htdocs \ vem \ App \ Views \ template \ register \ registeruser.tpl в строке 14
Как мне двигаться вперед?
Я даже пытался установить $this->e($error) = ''
, но наа, показывает другую ошибку.