我想按其release_date
对数据进行排序/排序,但是出现一个我不明白的错误:
在我的控制器中,我有:
public function index() {
$releases = Release::orderBy('release_date', 'desc');
return view('pages.index')->with('releases', $releases);
}
在我的查看文件中,我有这个:
@if (count($releases) > 0)
@foreach ($releases as $release)
<div>
<p>{{$release->artist}} - {{$release->album_title}} <span>ReleaseDate: {{$release->release_date}}</span></p>
</div>
@endforeach
@endif
这将返回错误:
count():参数必须是实现的数组或对象 可数的
这是什么意思?有人可以帮我吗?
答案 0 :(得分:1)
尝试以下代码:
public function index()
{
$releases = Release::orderBy('release_date', 'desc')->get();
return view('pages.index')->with('releases', $releases);
}
您的代码之前无法工作的原因是因为orderBy
不会执行查询,它只会添加查询。在这种情况下,您需要最后链接到get()
上才能执行查询并获取结果,否则您将只获取查询生成器的实例。
答案 1 :(得分:0)
更改控制器
public function index() {
$releases = Release::orderBy('release_date', 'desc')->get();
return view('pages.index',compact('releases');
}
更改视图
@if ($releases->count() > 0)
@foreach ($releases as $release)
<div>
<p>{{$release->artist}} - {{$release->album_title}} <span>ReleaseDate: {{$release->release_date}}</span></p>
</div>
@endforeach
@endif