PHP OOP Обновляет запись, но показывает сообщение об ошибке - PullRequest
0 голосов
/ 14 ноября 2018

Я работаю с ООП 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 возникала проблема, НО он уже обновляет имя учетной записи. Таким образом, сообщение Ваши данные были обновлены должно появиться вместо!

1 Ответ

0 голосов
/ 16 ноября 2018
public function update($fields = array(),$id = NULL)
    {
        if(!$id && $this->isLoggedIn())
        {
            $id = $this->data()->id;
        }
        try
        {
            !$this->_db->update('users', $id, $fields);
        }
        catch(Exception $e)
        {
            die($e->getMessage());
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...