2015-09-12 2 views
-2

У меня есть следующий код в функции моего контроллера:Undefined смещение 0 ошибка в PHP

$this->loadModel('Cardetail'); 
     $car_info_oneway= $this->Cardetail->query("Select * from cardetails as c INNER JOIN sellers as s ON c.seller_id=s.id where c.id='$car_id_oneway'"); 

То, что я хочу сделать, это прочитать значение одного из столбцов результирующего набора на мой взгляд, , Однако каждый раз, когда я получаю сообщение об ошибке «Undefined offset 0.» Вот часть моего кода. :

В чем проблема?

+0

Проверьте, что '$ car_info_oneway' содержит как это' print_r ($ car_info_oneway); ' – Cyclonecode

+0

содержит массив, основанный на результате, возвращаемом запросом выше. – Siddhant

+0

Откуда вы это знаете? Вы пытались сбросить содержимое '$ car_info_oneway'. Если вы подозреваете, что это строка, содержащая ошибку '$ count = $ car_info_oneway [0] ['c'] ['total_number_of_seats'];' и это потому, что вы пытаетесь получить доступ к индексу, который делает ** не ** существовать. Вы также должны добавить код для метода 'query()' вашего контроллера. – Cyclonecode

ответ

2

Почему вы используете query()? Вы должны использовать метод Cake find() для извлечения ваших данных с помощью contain, чтобы получить данные Продавца (необходимо убедиться, что ваши моделии Seller правильно связаны).

Я предполагаю, что вы просто пытаетесь получить один Cardetail запись так должно быть с помощью find('first'): -

$this->loadModel('Cardetail'); 
$car_info_oneway = $this->Cardetail->find('first', [ 
    'contain' => ['Seller'], 
    'conditions' => [ 
     'Cardetail.id' => $car_id_oneway 
    ] 
]); 

При использовании find('first') возвращаемый массив не будет численно индексируется так что ваш $count будет: -

$count = $car_info_oneway['Cardetail']['total_number_of_seats']; 

Если вы столкнулись с проблемами, вы можете проверить возвращенный массив, используя debug($car_info_oneway).

Смежные вопросы