Я работаю с ООП PHP для создания системы входа / регистрации. Теперь я создал страницу с именем update.php
для обновления имени пользователя:
<form action="" method="POST">
<div class="field">
<label for="name">Name:</label>
<input type="text" name="name" value="<?php echo escape($user->data()->name); ?>">
<input type="submit" value="Update">
<input type="hidden" name="token" value="<?php echo Token::generate(); ?>">
</div>
Затем я добавил эти коды как действие:
if($validation->passed())
{
try
{
$user->update(array(
'name' => Input::get('name')
));
Session::flash('home','Your details have been updated');
Redirect::to('index.php');
}
catch(Exception $e)
{
die($e->getMessage());
}
}
else
{
foreach($validation->errors() as $error)
{
echo $error, '</br>';
}
}
А вот метод update
в Пользователь Класс:
public function update($fields = array(),$id = NULL)
{
if(!$id && $this->isLoggedIn())
{
$id = $this->data()->id;
}
if(!$this->_db->update('users', $id, $fields))
{
throw new Exception('There was a problem updating');
}
}
Поэтому, когда я пытаюсь обновить имя моей учетной записи, он говорит: При обновлении * 1017 возникала проблема, НО он уже обновляет имя учетной записи. Таким образом, сообщение Ваши данные были обновлены должно появиться вместо!