php - Laravel 方法 Illuminate\Database\Eloquent\Collection::toSql 不存在。错误
问题描述
我想从数据库中搜索所有记录,然后过滤这些记录,但是当我想查看查询时
dd($posts->toSql());
它给了我错误
"Illuminate\Database\Eloquent\Collection::toSql does not exist."
它又给了我一个错误
"Method Illuminate\Database\Eloquent\Collection::paginate does not exist."
$posts = Post::all();
if( !is_null($brand) )
$posts = $posts->where('brand', $brand);
if( !is_null($car_type) )
$posts = $posts->where('car_type', $car_type);
if( !is_null($color) ){
$posts = $posts->where('exterior_color', $color);
}
$posts = $posts->whereBetween('year',[$from_year,$to_year]);
$posts = $posts->whereBetween('milage',[$min_milage,$max_milage]);
$posts = $posts->whereBetween('price',[$min_price,$max_price]);
$posts = $posts->paginate(4);
dd($posts->toSql());
解决方案
拉拉维尔:5
你不能->paginate()
或->toSql()
之后Post::all() / Post::get()
你需要做什么 :
在下面使用:
$posts = Post::query();
if( !is_null($brand) )
$posts = $posts->where('brand', $brand);
$posts = $posts->whereBetween('year',[$from_year,$to_year]);
$posts = $posts->whereBetween('milage',[$min_milage,$max_milage]);
$posts = $posts->whereBetween('price',[$min_price,$max_price]);
// $posts = $posts->paginate(4);
dd($posts->toSql());
推荐阅读
- batch-file - 如何使用批处理文件检查程序的版本?
- javascript - 安全地存储 Web 推送通知的订阅 JS/Node.js
- javascript - 如何从图像的顶部和底部剪切一个矩形?
- json - 无法使用 JSONSerialization 打印特定的嵌套 json 数据
- android - Android - ToyVPN 是否有可能“伪造”VPN 连接?
- sql - PostgreSQL:将一整列设置为空值和数据库大小增加。为什么?
- android - 喷气背包组成。日期时间选择器
- javascript - 是否有用于获取私有属性/方法类型的 Typescript 语法糖?
- android-studio - 为什么单击属性时未显示文档,但显示在窗口中
- excel - 如何根据列名对列求和?