これは私のコントローラーです:
return View::make('home.listings')
->with('listings', Listing::all());
以前は、次のようなビューで確認しました (そして、すべてのプロジェクトで機能しました)。
@if(!empty($listings))
//use foreach and show listings
@else
<h3>No listing is found.</h3>
@endif
これが私のリスティング モデルです。
class Listing extends Eloquent {
public static $key = 'id';
protected $table = 'ilanlar';
public $timestamps = false;
}
現在、データベースにエントリがある場合に機能します。ただし、無い場合はelseブロックまで行きません。なぜなら:
dd(!empty($listings)) //output: (boolean) true
そして、リスト変数を出力すると:
dd($listings) //outputs:
object(Illuminate\Database\Eloquent\Collection)[229]
protected 'items' =>
array (size=0)
empty
これが、Eloquent がオブジェクトを返し、true にキャストするため、else ブロックに到達しない理由です。
問題は、Eloquent コレクションを返す理由がわかりません。以前はそうではありませんでした。私は何かを見落としていますか?