我正在将 CodeIgniter-Bonfire 用于 Web 应用程序,该应用程序允许站点管理员验证或取消验证用户的“资料”(例如姓名和工作经验)。管理员可以从下拉列表中选择“验证”或“取消验证”。当下拉列表的值发生变化时,将对服务器进行 ajax 调用。然后服务器向 javascript 回显一些值,将其插入到视图页面中。
一切正常——数据库已相应更改,回显值正确——但 javascript 现在也从服务器端捕获错误消息。
错误是:Trying to get property of non-object.
我已经在错误发生之前和之后完成了回声,但对象打印得很好。我很茫然,因为这过去没有发生过。
真正令人讨厌的是错误似乎是随机发生的。当验证从已验证变为未验证时可能是这样,反之亦然。有时错误会在回显值之前打印出来,有时它会自行消失(但不会在显示一瞬间之前消失。
先感谢您。
javascript看起来像这样:
$(document).on('change', '.verified', function(event) {
var id = $(this).attr('id');
$.ajax({
type: "POST",
url: 'http://theurl.com/module/controller/verify/100/files/24'
}).done(function(msg) {
$('#timestamp_'+id).text(msg);
});
函数验证看起来像这样:
public function verify($user_id, $other_table, $other_id)
{
$this->load->model('profile/Verifiable_items_model', 'vi_model');
$item = $this->vi_model->find_by(array(
'user_id' => $user_id,
'other_table' => $other_table,
'other_id' => $other_id
));
$update_date = 0;
if ($item->verified == 0) // ERROR HERE
{
$update_date = date('Y-m-d H:i:s', time());
$data = array('verified' => 1, 'notes_time' => date('Y-m-d H:i:s', time()), 'verified_by' => $this->current_user->username);
}
else
{
$data = array('verified' => !($item->verified), 'notes_time' => NULL); // ERROR HERE
}
$this->vi_model->update($item->id, $data);
echo $update_date;
}