2016-08-15 2 views
0

Привет всем будет видеть у меня есть следующий запросизвлечение результата запроса в CakePHP 3

$query = $this->PreguntasAlternativas->find(); 
$query->select(['id_alternativa' => $query->func()->max('id_alternativa') 
     ])->where(['id_pregunta' => $idquestion]); 

Это возвращает мне такое расположение

query(array) 
0(object) 
    id_alternativa(null) 

и то, что я хочу, чтобы получить значение, возвращенное мне затем выполнить валидацию, а не как получить значение, возвращаемое запросом, чтобы я сделал что-то вроде

if($query == null){ 
    $result = 1; 
}else{ 
    $result = +1; 
} 

, пожалуйста, помогите

ответ

0

мой fues решение этого изменить структуру моего запроса

$query = $this->PreguntasAlternativas->find('all', ['conditions' =>  ['id_pregunta' => $idquestion]]); 
    $result = $query->max('id_alternativa'); 
    if(!$result['id_alternativa']){ 
     $result['id_alternativa'] = 1; 
    } else { 
     $result['id_alternativa'] += 1; 
    } 

Благодаря

1

Queries are lazily executed, и поэтому ваш запрос будет Cake\ORM\Query. Вам нужно будет выполнить запрос, чтобы иметь возможность обрабатывать результаты.

Если вы добавите ->toArray() к вашему запросу, это приведет к его выполнению и преобразованию в массив. Это позволит вам работать с результатами.

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