我正在做一个老的PHP项目,它运行在遗留的SQL查询中,这很好,但我喜欢使用像Laravel Illuminate SQL包这样的查询生成器!
所以我添加了所有必需的包依赖项来运行SQL,这个查询生成器似乎可以很好地进行分页!
$users = Capsule::table('users')->paginate(1)->toArray();
但是,分页器似乎不能监听查询字符串!例如,通过运行上面的代码,它会给出一些属性,如next_page、previous_page等...
当我试图在URL中传递查询字符串时,它无法从查询字符串(从GET请求)中获取数据!
访问此页面http://app.app/?page=2
将得到相同的结果集。
我应该如何配置Illumate sql包,以便它也可以监听查询字符串?
编辑
此外,我尝试使用illuminate/http包,但是请求-
<?php
require_once './vendor/autoload.php';
use \Illuminate\Http\Request;
$req = new Request();
echo '<pre>';
print_r($req->all());
echo '</pre>';
我缺少的是使用http包,任何想法都会有所帮助。
>
您可以使用类来接收和使用Http负载。
您的控制器文件:
<?php
use Illuminate\Http\Request;
class YourControllerClassName{
public function someFunction(Request $request){
echo "<pre>";
print_r($request->all());
print_r($request->input('page'));
$users = Capsule::table('users')->paginate($request->input('page'))->toArray();
}
}
需要注意的是,paginator不会对查询字符串使用其他参数-它只使用参数来获得有效的结果页面。但例如,如果您使用:
http://app.app/?page=2&price=2
它不会从价格为2的数据库结果中获取-这是您的工作。
然而,第二件事是分页器生成的网址。
如果你这样做:
$users = Capsule::table('users')->paginate(1);
您也可以在下一行中使用
$users->appends(request()->except('page'));
这会将查询字符串(页面除外)中的所有其他参数添加到url,因此first_page_url
将包含请求中的所有其他参数。
您还可以使用如下流畅的语法对其进行包装:
$users = Capsule::table('users')->paginate(1)->appends(request()->except('page'));
您必须设置页面解析器:
\Illuminate\Pagination\Paginator::currentPageResolver(function ($pageName = 'page') {
return (int) ($_GET[$pageName] ?? 1);
});
Laravel使用这个解析器。
我有两种型号: 用户 用户有很多帖子。帖子有很多评论,评论属于帖子。这很简单。 现在我想加载所有的帖子的认证用户与它的评论,如果帖子有评论今天创建。如果帖子今天没有评论,它将不会被加载。这些帖子也将被分页。如何建立查询在laravel雄辩? 我试过这样的方法:
我试图使用查询字符串实现Codeigniter分页,但遇到了一些问题。我已经打开了 因此,使用查询字符串进行分页,但就我所知,当您使用查询字符串进行控制器和方法路由时,这确实是为了工作。然而,在我的情况下,我仍然使用URI段进行路由,但只是想使用查询字符串进行分页、过滤结果、搜索等。当我尝试使用http_build_query()重建的url与查询字符串发送通过它导致per_page(我已重命名为
问题内容: 我的表格中有一个字段,其中包含逗号分隔的字符串,例如。每个数字代表可用的颜色。 运行查询以获取所有红色衬衫(颜色= 1)时,我还会获取颜色为灰色(= 12)和橙色(= 15)的衬衫。 我应该如何重写查询,以便仅选择颜色1而不是选择所有包含数字1的颜色? 问题答案: 经典方法是在左右添加逗号: 但是find_in_set也可以:
我有一个问题,使laravel查询: 我想举个例子: 我有这个但不起作用:
使用数据库的应用程序,多数情况下都需要使用 “分页” 这个功能。尤其是在 Web 应用程序中,后端的分页查询尤其的普遍。 在以往的使用经验中,一个分页查询,除了能获取到一个列表外,我们通常需要如下几个信息才能在客户端显示出一个完整的翻页条。 当前页数 -- 第几页 页大小 -- 每页有多少条记录 总页数 -- 一共多少页 总记录数 -- 如果不分页,一共有多少条记录 当我们获得了这四条信息后,对于
limt 分页查询 查询前3条记录 分页公式: (offset - 1) * limit SELECT name FROM `student` LIMIT 0, 3; Student.findAll( { attributes:['name'], // 当前页 offset:0, // 每页显示的条数 limit:3 }) 分页案例 router.ge