类stdClass的对象无法转换为int

时间:2016-02-27 10:52:03

标签: php codeigniter

我有这样的错误 类stdClass的对象无法转换为int

控制器

if ($this->input->post('nama') == 'pendek boju jeans') {
                    $a=0.810;
                }else{
                    $a=1.144;
                }
                $kain= $this->input->post('id_kain');
                $b=$this->jeans_model->luaskain($kain);
                $tpotongan=round($a/$b);

模型

    public function luaskain($kain)
  {
    $this->db->select("ukuran");
    $this->db->from("bahankain");
    $this->db->where('id_kain',$kain);
    $query = $this->db->get();
    return $query->row();
  }

在我的模型中从bahankain.ukuran获取价值

|ukuran|
|800|

为什么错误Object of class stdClass could not be converted to int 以及如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

我不知道你脚本中的名字是什么意思,但问题是对象,正如我所说,是一个至少有一些属性的结构,而int只是一个编号

所以当你按对象划分某些东西时 - 它意味着什么?应该从物体中得到什么价值?谁能说出来?当你用某种东西划分对象时也是如此。

所以,我想,首先你应该var_dumpprint_r你的$b变量作为对象,在分区中使用。然后 - 找出你应该使用的$b变量中的数字。我认为它是ukuran(无论它意味着什么)。

因此,更精确的代码是:

$tpotongan = round($a / ($b->ukuran)); // taking ukuran property from object

答案 1 :(得分:0)

在模型中试试

public function luaskain($kain)
  {
    $this->db->select("ukuran");
    $this->db->from("bahankain");
    $this->db->where('id_kain',$kain);
    $query = $this->db->get();
    $result=$query->row();
        if (isset($result))
        {
            return $result->columnname;//write your column name
        }
        else
        {
            return 1;
        }
  }

答案 2 :(得分:0)

$query->row(),在您的方法luaskain($kain)中,返回类型为stdClass的对象,该对象代表(带有值的一个或多个字段)数据库查询的结果集 - 单个字段值。

要访问单个字段的值,在本例中为字段ukuran,您需要像$b->ukuran一样访问它。您可以使用那个值除以(但请确保它不为零,当然,因为您不能除以零)。