У меня есть ошибка, такая как этот объект класса 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 и как это решить?

1
faza 27 Фев 2016 в 13:52

3 ответа

Лучший ответ

Я не знаю, что означают имена в вашем скрипте, но проблема в том, что объект, как я уже сказал, представляет собой структуру, по крайней мере, с некоторыми свойствами, а int - это просто число .

Итак, когда вы делите что-то по объектам - что это значит? Какое значение от объекта следует взять? Кто подскажет? То же самое верно, когда вы чем-то делите объект.

Итак, я полагаю, сначала вы должны var_dump или print_r переменную $b, которая является объектом, используемым в делении. А потом - узнайте, какое число из переменной $b вам следует использовать. Я полагаю, это ukuran (что бы это ни значило).

Итак, более точный код:

$tpotongan = round($a / ($b->ukuran)); // taking ukuran property from object
1
u_mulder 27 Фев 2016 в 11:07

$query->row() в вашем методе luaskain($kain) возвращает объект типа stdClass, который представляет строку (одно или несколько полей со значениями) из набора результатов запроса к базе данных - не одно значение поля.

Чтобы получить доступ к значению одного поля, в данном случае поля ukuran, вам необходимо получить доступ к нему, как $b->ukuran. Вы можете использовать это значение для деления (но убедитесь, что оно не равно нулю, потому что вы не можете делить на ноль).

0
Decent Dabbler 27 Фев 2016 в 13:05

Попробуйте это в модели

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;
        }
  }
0
meet 27 Фев 2016 в 12:44