кохана находит второй элемент коллекции (с помощью find())

#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. хотя в названии сказано иначе, она спросила, как «получить первые два элемента» 🙂