Saj*_*ood 2 php eloquent laravel-5
我想从数据库中搜索所有记录,然后过滤这些记录,但是当我想查看查询时
dd($posts->toSql());
Run Code Online (Sandbox Code Playgroud)
它给了我错误
"Illuminate\Database\Eloquent\Collection::toSql does not exist."
Run Code Online (Sandbox Code Playgroud)
它又给了我一个错误
"Method Illuminate\Database\Eloquent\Collection::paginate does not exist."
Run Code Online (Sandbox Code Playgroud)
$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());
Run Code Online (Sandbox Code Playgroud)
你不能->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());
Run Code Online (Sandbox Code Playgroud)