2017-03-24 5 views
0

私は予約システムを構築しており、再帰的なプログラミング機能を提供しています。そのため、私はphp関数next()とcurrent()をPHPで使う必要があります。問題は、私が雄弁にすべてのレコードの配列を持っていれば、それはちょうどうまくいかないということです。それは他のすべての配列で動作するので、私の推測では、内部ポインタは設定されていませんが、reset()関数も役に立ちません。laravel eloquentの返された配列でnext()またはcurrent()を使用するにはどうすればよいですか?

$posts = Post::all(); 

そして私は(doesntの問題)、現在の($ポスト)エコーまたは戻り、私は同じことを得る:

問題は、私は、このようなテーブルからすべての結果を得るためにlaravelで雄弁なモデルを呼び出すときです

next($posts); 
return current($posts); 

または::

私はこれを呼び出すしようとすると、私は(全体の配列)

$投稿を返されたかのような結果

prev($posts); 
return current($posts); 

私はエラーを持っている:

The Response content must be a string or object implementing __toString(), "boolean" given. 

は、誰もがこの問題で私を助けることができるしてください?私が同じ配列を作成して雄弁な配列を返すと、この新しい配列は同じですが、私が雄弁な配列に最新のものを使うと、それはうまくいきません。 ご協力いただきありがとうございます。配列にコレクションを変換するにはPost::first()

:最初の行を取得するに

+0

'ポスト::すべての()'リターンを使用することができますコレクションではなく配列です。 https://laravel.com/docs/5.4/collectionsあなたは 'toArray()'できますが、これを処理するより良い方法があると思います。 – ceejayoz

答えて

2
$posts = Post::all(); // returns a collection 

あなたはその後、current($posts)またはnext($posts)またはprev($posts)かを呼び出すことができます

$posts = Post::all()->toArray(); 

をしたいですend($posts)

しかし、あなたがコレクションを持っているとして、あなたは常にlaravelの収集方法などfirstlasteachfiltermapreduceなど

https://laravel.com/docs/5.4/eloquent-collections#available-methods

+0

ありがとう、私はこれはかなり基本的なことだと思うので、私は何かの前にこれを学ぶべきだと思うが、とてもありがとう。 – user3786923

-1

Post::all()->toArray()

$posts = Post::all()->toArray(); 
current($posts); 
next($posts); 
関連する問題