douchuopiao9002 2013-11-06 14:15
浏览 179
已采纳

Laravel 4的all()方法最近开始返回Eloquent集合 - 为什么?

This is my controller:

return View::make('home.listings')
    ->with('listings', Listing::all());

Previously, I checked it on views like this: (and it worked on all my projects)

@if(!empty($listings))
     //use foreach and show listings
@else
     <h3>No listing is found.</h3>
@endif

This is my Listing model.

class Listing extends Eloquent {

     public static $key = 'id';
     protected $table = 'ilanlar';
     public $timestamps = false;
}

Right now, it works when there is an entry in database. However, when there is not, it doesn't get to the else block. Because:

dd(!empty($listings)) //output: (boolean) true

And, when I output listings variable:

dd($listings) //outputs: 
    object(Illuminate\Database\Eloquent\Collection)[229]
            protected 'items' => 
                    array (size=0)
                            empty

This is the reason why it doesn't reach else block, because Eloquent returns and object and it casts to true.

The problem is: I don't know why it returns an Eloquent collection. Previously it didn't. Am I overlooking something?

  • 写回答

2条回答 默认 最新

  • dongxie5698 2013-11-06 15:08
    关注

    The Collection object has a isEmpty() method, so you could use that:

    @if(! $listings->isEmpty())
        //use foreach and show listings
    @else
        <h3>No listing is found.</h3>
    @endif
    

    Alternatively, you can convert everything to an Array:

    return View::make('home.listings')
        ->with('listings', Listing::all()->toArray());
    

    And use everything as an array within your views:

    @if(!empty($listings))
        @foreach(listings as $listing):
        <li>{{ $listing['name'] }}</li>  <!-- Note $listing is treated as an array -->
        @endforeach
    @else
        <h3>No listing is found.</h3>
    @endif
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。