codeigniter flashdata成功消息返回失败

时间:2018-11-12 02:13:50

标签: php mysql codeigniter-3

我更新了一些数据,无论更新成功与否,它都会恢复为失败。

这是我的控制器代码:

logncdf

我想要什么: 如果数据更新成功,则仅返回 $data['edit_cli'] = $this->clients_model->edit_cli(); if(!empty($data['edit_cli'])){ $_SESSION['cli_updated'] = '<div class="alert alert-success cli_updated"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> Client Updated Successfully </div>'; $this->session->mark_as_flash('cli_updated'); } else{ $_SESSION['cli_updated'] = '<div class="alert alert-danger cli_updated"> <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> Client Updated Failed </div>'; $this->session->mark_as_flash('cli_updated'); }

如果无法成功更新,它将返回Client Updated Successfully

控制器代码中是否存在错误,可能是我的Client Updated Failed条件存在?

这是我的if代码:

model

2 个答案:

答案 0 :(得分:0)

您没有从模型返回任何东西!请从您的模型返回结果。因此,请在模型代码的最后一行替换此行,然后查看会发生什么。

    $result  =  $this->db->update('tbl_client_info', $data);  

    return $result;

为此,请在控制器的if条件中更改此行

    if($data['edit_cli']){
         //your code here
     }else{
       //your code here
    }

因为您总是返回0或1。这就是为什么结果不为空的原因!

答案 1 :(得分:0)

您可以考虑稍微更改if逻辑。但是正如M. Alim指出的那样,您必须从模型中返回一些信息。将模型的最后一行更改为

return $this->db->update('tbl_client_info', $data);

方法$this->db->update()将返回TRUE或FALSE。

代码

if(!empty($data['edit_cli'])){
    // successful message
} else {
    // failed message
}

应更改为

if($data['edit_cli'] === TRUE){
    // successful message
} else {
    // failed message
}