#orm #find #kohana
#orm #Найти #кохана
Вопрос:
у меня есть веб-сайт kohana, и у меня возникает ситуация, когда мне всегда нужно получить первые два элемента коллекции (на самом деле это картинки).
я беру первый элемент очень просто, используя :
$image = $product->images->find();
но как я могу на самом деле взять второй элемент? (используя find в конечном итоге). Есть ли какое-либо простое решение для этого?
Спасибо!
Ответ №1:
$first_two = $product->images->limit(2)->find_all();
функция find() в основном такая же, как find_all(), добавляя ограничение(1) и возвращая текущий результат (первый).
$first = current($first_two);
$second = next($first_two);
Обратите внимание, что next() перемещает внутренний указатель на массив, поэтому вам придется сбросить его (), если вы хотите повторить цикл с самого начала.
Ответ №2:
Вы можете использовать комбинацию limit($n)
и offset($o)
для выбора $n
строк, начиная с $o
позиции в базе данных. Подробнее о методах построения запросов здесь.
Итак, ваш код будет выглядеть следующим образом $image = $product->images->offset(1)->find();
PS. Обратите внимание, что некоторые движки БД могут не поддерживать OFFSET
инструкцию SQL (например, MS SQL server).
Комментарии:
1. хотя в названии сказано иначе, она спросила, как «получить первые два элемента» 🙂