2016-12-20 3 views
0

Я использую Laravel 5.0. Я получаю один реестр на своем столе со всеми условиями.Нельзя использовать объект типа stdClass как массив на laravel

Моя функция модели:

public static function getParcelas($id){ 
    return DB::table('academia_matricula_parcelas') 
    ->select('academia_matricula_parcelas.data_validade') 
    ->where('academia_matricula_id', '=', $id) 
    ->where('data_validade', '<>', "0000-00-00") 
    ->orderBy('id', 'desc') 
    ->first(); 
} 

Получение результата:

$parcelas = App\academia_matricula_parcelas::getParcelas($item->id); 

Мои var_dump($parcelas):

{#504 ▼ 
    +"data_validade": "1970-03-01" 
} 

Когда я пытаюсь показать $parcelas->data_validade, на мой взгляд, происходит ошибка последующей:

Cannot use object of type stdClass as array

+0

показать, как вы можете передать эти $ parcelas на ваш взгляд? –

+0

Для какой строки вы получаете сообщение об ошибке? –

+0

Вы можете сделать toArray(), чтобы преобразовать его в Array, если хотите. DB :: таблица ('') academia_matricula_parcelas -> выберите ('') academia_matricula_parcelas.data_validade -> где ('academia_matricula_id', '=', $ ID) -> где ('data_validade', «<> ', "0000-00-00") -> orderBy (' id ',' desc ') -> first() -> toArray(); – Nevermore

ответ

0

Изменить код этого,

public static function getParcelas($id){ 
    \DB::setFetchMode(\PDO::FETCH_ASSOC); 
    return \DB::table('academia_matricula_parcelas') 
    ->select('academia_matricula_parcelas.data_validade') 
    ->where('academia_matricula_id', '=', $id) 
    ->where('data_validade', '<>', "0000-00-00") 
    ->orderBy('id', 'desc') 
    ->first(); 
} 

и попытаться отладить это $ Parcelas [ 'data_validade'];

+0

\ DB :: setFetchMode (\ PDO :: FETCH_ASSOC) с успехом преобразует мой возврат для массива, но когда я пытаюсь показать с помощью echo $ parcelas-> data_validade, результаты с ошибкой. –

+0

echo $ parcelas ['data_validade']; – Jaimin

+0

Следующая ошибка: попытка получить свойство не-объекта. Мой var_dump: 'массив: 1 [▼ "data_validade"=> "1970-03-01" ]' –

0

Думаю, вам нужно написать $ parcelas ['data_validade']. это помогает!

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