我正在尝试使用log_tb
类中的set_log()
方法在User_model
表中插入数据。但我似乎无法使其工作,因为我将用户ID参数化为set_log()
的方式进行思考(即使我将$config['log_threshold']
设置为{{1}也没有错误显示在config.php中)。
用户ID来自4
方法的查询,并使用get_user
运行结果以获取用户ID。
看看下面的课程:
foreach()
如何从class User_model extends CI_Model {
public function __construct()
{
$this->load->database();
}
public function set_log($userid) /* INSERT METHOD */
{
$date = date('Y-m-d H:i:s'); /* GET THE DATE AND TIME */
$data = array(
'user_id' => $userid,
'log_date' => $date
);
return $this->db->insert('log_tb', $data); /* INSERT THE DATA TO log_tb */
}
public function get_user($pinno = FALSE)
{
if ($pinno === FALSE)
{
$query = $this->db->get('user_tb');
return $query->result_array();
}
$query = $this->db->get_where('user_tb', array('pin_no' => $pinno));
foreach($query->result() as $query_item) /* RUN THROUGH THE RESULT */
{
$this->User_model->set_log($query_item["user_id"]); /* GET THE USER ID AND PARAMETERIZE IT TO set_log METHOD */
}
return $query->row_array();
}
}
变量中获取用户ID,使其成为$query
方法的参数?这是对这种逻辑的正确方法吗?或者我应该拨打外面的set_log()
吗?
答案 0 :(得分:1)
因为你使用$ query->结果结果是一个对象试试这个
public function get_user($pinno = FALSE)
{
if ($pinno === FALSE)
{
$query = $this->db->get('user_tb');
return $query->result_array();
}
$query = $this->db->get_where('user_tb', array('pin_no' => $pinno));
foreach($query->result_array() as $query_item) /* RUN THROUGH THE RESULT */
{
$this->set_log($query_item['user_id']); /* GET THE USER ID AND PARAMETERIZE IT TO set_log METHOD */
}
return $query->result_array();
}
答案 1 :(得分:1)
在此函数get_user()
中,您使用$query->result()
获取用户ID为$query_item["user_id"]
,它将返回对象形式的结果而不是数组。
修改功能:
public function get_user($pinno = FALSE)
{
if ($pinno === FALSE)
{
$query = $this->db->get('user_tb');
return $query->result_array();
}
$query = $this->db->get_where('user_tb', array('pin_no' => $pinno));
foreach($query->result() as $query_item) /* RUN THROUGH THE RESULT */
{
$this->User_model->set_log($query_item->user_id); /* GET THE USER ID AND PARAMETERIZE IT TO set_log METHOD */
}
return $query->row_array();
}
有两种解决方案:
解决方案1:
如果你想使用
$query->result()
比你需要使用userid,如:
$query_item->user_id // as property in foreach() body
解决方案2:
如果你想使用
$query->result_array()
无需更改foreach()
正文中的任何内容:
$query_item["user_id"] // as array index