kohana найти второй элемент коллекции (используя find ()) - PullRequest
0 голосов
/ 06 мая 2011

У меня есть веб-сайт кохана, и у меня есть ситуация, когда мне всегда нужно получить первые два элемента коллекции (на самом деле это картинки).

Я беру первый элемент очень просто, используя:

     $image = $product->images->find();

но как я могу взять второй элемент? (используя найти в конце концов). Есть ли простое решение для этого?

спасибо!

Ответы [ 2 ]

1 голос
/ 06 мая 2011

Вы можете использовать комбинацию limit($n) и offset($o) для выбора $n строк, начиная с позиции $o в БД.Узнайте больше о методах Query Builder здесь .

Итак, ваш код будет выглядеть как $image = $product->images->offset(1)->find();

PS.Обратите внимание, что некоторые механизмы БД могут не поддерживать оператор SQL OFFSET (например, сервер MS SQL).

1 голос
/ 06 мая 2011
$first_two = $product->images->limit(2)->find_all();

find () в основном совпадает с find_all (), добавляя ограничение (1) и возвращая текущий результат (первый).

$first = current($first_two);
$second = next($first_two);

Обратите внимание, что next () опережаетвнутренний указатель массива, поэтому вам придется его сбросить (), если вы захотите повторить цикл с самого начала.

...