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 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在