2011-05-06 9 views
0

私はkohanaのウェブサイトを持っています。私はいつもコレクションの最初の2つの要素(実際には写真です)を取得する必要がある状況があります。kohanaコレクションの2番目の要素を見つける(find()を使用)

私が使用して最初の要素は非常にシンプルを取る:

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

をどのように私は実際に第二の要素を取ることができますか? (最終的にfindを使用して)。そのための簡単な解決策はありますか?

ありがとうございました!

答えて

1
$first_two = $product->images->limit(2)->find_all(); 

find()はfind_all()と基本的に同じですが、limit(1)を追加して現在の結果(最初のもの)を返します。あなたが再び最初からループする場合は、()をリセットするためにそれを持っていますので)(次は、内部配列ポインタを進めること

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

注意してください。

+0

超クールです。私はそれをしようとしている! – dana

1

limit($n)offset($o)の組み合わせを使用して$nの行を$oの位置からDBに選択することができます。クエリービルダーの詳細については、hereメソッドを参照してください。

だから、あなたのコードの意志が$image = $product->images->offset(1)->find();

PSのように見えます。一部のDBエンジンはSQLのOFFSETステートメント(MS SQLサーバーなど)をサポートしていない場合があります。

+0

タイトルはそうでないと言っていますが、彼女は「最初の2つの要素を得る」方法を尋ねました:) – Kemo

+0

たくさんの人に感謝します! – dana

関連する問題