编程语言
首页 > 编程语言> > PHP-CodeIgniter:如果Active Record找不到任何数据,则返回FALSE

PHP-CodeIgniter:如果Active Record找不到任何数据,则返回FALSE

作者:互联网

使用CodeIgniter,我在所有从数据库收集数据的模型中都找到以下代码:

// .. taken from function get_user_data($user_id)
// Select data
$user_data = $this->db->from('users')->where('id', $user_id)->get()->row();

// Check if we got any matches
if(isset($user_data->id)) {

  // Indeed we did, return the data found
  return $user_data

} else {

   // Nope, no data found
   return FALSE;

}

有趣的部分是我检查查询是否实际返回了任何数据的地方.我正在对每个查询执行此操作,这将导致相当多的重复代码.

是否有任何方法可以覆盖CodeIgniter函数,如果找不到数据,则使它们返回FALSE?
我可能丢失了一些内容,因为我看不到为什么CodeIgniter尚未对此进行处理.

解决方法:

我同意wesley murch选项,但我认为为单个函数创建整个类不是一个好习惯.我的意见是使用助手.您可以尝试以下方法:

在帮助文件中:

function get_db_data($result)
{
    return ( $result->num_rows() > 0 ) ? $result->result_array() : false;
}

您可以在任何模型中使用

$this->load->helper('helper_file_name');
$dbData = get_db_data(result_object);

标签:activerecord,codeigniter,php
来源: https://codeday.me/bug/20191201/2077975.html