我在Codeigniter框架内创建一个数据库调用,它将调用三种速率之一(数据库中的单元格),具体取决于传递给数据库调用函数的内容。
这是我的模型函数,它将查询数据库:
public function getRate($options) {
$query = "SELECT * FROM staff_rates WHERE staff_id = " . (int)$options['id'] . " AND month = '" . strtolower($options['month']) . "' AND year = " . $options['year'];
$result = $this->db->query($query);
$rate = $options['type'] . "_rate";
return $result->result()->{$rate};
}
如您所见,数组传递给函数,该函数包含一个名为key' type'的值。这种类型可以是三个字符串中的一个,' attrition''运动'和'占用'并且数据库中有三个相应的单元格,' attrition_rate' movement_rate'和' occupancy_rate'。
我只希望此函数从我传递给函数的单元格中返回值,因此您可以在我的代码中看到,我尝试构建我需要的单元格的名称($ rate = $ options [ '键入']。" _rate";)以便将其传回我的控制器。
Severity: Notice
Message: Trying to get property of non-object
Filename: models/assessment_model.php
Line Number: 523
这是引用代码行:
return $result->result()->{$rate};
我是否不可能以这种方式访问对象的变量(如使用动态变量)?
由于
答案 0 :(得分:2)
$ result->结果()
这会返回你的对象数组 你可以用
$result->row();
获得单一结果