我正在使用Parse + CodeIgniter开发项目。 我有两个屏幕来管理ParseUsers:allUsers.php,列出所有用户。 和detailUser.php,用于创建/编辑用户。
当用户提交表单(新的ParseUser)时,我调用save方法。那包含代码:
try{
if ($user_id)
$user->save(true); // Update
else
$user->signUp(); // Insert
$this->session->set_flashdata('success', 'Success');
redirect('all-users');
}
catch(Parse\ParseException $error){
$error_message = $error->getMessage();
$this->session->set_flashdata('error', 'Error: ' . $error_message);
$this->data['user'] = $user;
$this->view = 'user/userDetail';
}
在视图中,我有这个(示例用户的名字):
<input type="text" id="name" name="name" class="form-control" required value="<?php if(isset($user)): echo $user->name; endif;?>">
表单会保持字段正确填充,但如果我刷新页面,则flashdata为空,而不是闪存数据。 所以,我在搜索后发现人们说flashdata只能用于重定向。
如果我重定向我的页面,则会显示flashdata。但是,这些字段没有填满。
我读到了set_value,这是维护字段的正确方法吗?但是,我喜欢只有两个视图,一个列出所有视图,另一个创建/编辑用户。那么,如果我使用set_value,这可能吗? 什么是最佳做法?
答案 0 :(得分:0)
使用加载而不是重定向
try{
if ($user_id)
$user->save(true); // Update
else
$user->signUp(); // Insert
$this->session->set_flashdata('success', 'Success');
$this->load->view('path');//use load instead of redirect
}
catch(Parse\ParseException $error){
$error_message = $error->getMessage();
$this->session->set_flashdata('error', 'Error: ' . $error_message);
$this->data['user'] = $user;
$this->view = 'user/userDetail';
}