我正在使用PHP OOP制作登录/注册系统。现在,我要做的是创建一个名为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>';
}
}
这是 User 类中的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');
}
}
因此,每当我尝试更新帐户名称时,都会说更新时出现问题,但它已经更新了帐户名称。因此,应该显示消息您的详细信息!
答案 0 :(得分:0)
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());
}
}