【问题标题】:laravel paginate deal with on controller or viewlaravel 分页处理控制器或视图
【发布时间】:2018-03-23 13:51:00
【问题描述】:

关于 laravel 5.5 的分页功能 当我使用 $request_all=$request->all() 从数据库中获取大量数据时

哪个更利于服务器加载

  1. 处理控制器上的 $request_all 然后将选定的数据传输到查看页面 就像 return View('show) ->with('name', $request_all['name']);

2.只需将 $request_all 发送到视图页面 就像 返回视图('显示) ->with('request_all', $request_all);

当我使用分页功能时

    public function index()
    {
    $products = DB::table('product')->paginate(15);

    return view('index', ['products' => $products]);
    }

缓存或会话是在服务器机器上还是在用户机器上?

(1) 当用户读取第 1 页时,服务器上等待的其他页面是否占用了服务器的内存? (2)或者当用户发布请求时,所有页面一次性发送到用户机器的内存中。

如果数据量太大机器会内存不足?

【问题讨论】:

  • 请澄清您的问题..无法理解。
  • 你想了解分页功能吗?
  • 我有两个问题。一种是服务器会话或用户缓存。另一个是分页功能的工作原理
  • 数据在Controller页面和刀片页面处理有区别吗?
  • 分页从数据库中获取数据一次,或者多次,就像用户换一页一样,100页意味着100次从数据库中获取数据?

标签: laravel request pagination


【解决方案1】:

好的,第一个Laravel Session

会话令牌是从服务器生成并发送到客户端以标识当前交互会话的唯一标识符。客户端通常将令牌作为 HTTP cookie 存储和发送,和/或将其作为 GETPOST 查询中的参数发送。 会话提供了一种跨多个请求存储用户信息的方法。

在 Laravel 中,访问会话数据,

$value = $request->session()->get('key'); //which will take one argument, here “key”

存储您可以使用的会话数据,

$request->session()->put('key', 'value'); //two arguments

要在你的项目中实现会话,你可以使用这个 laravel 文档Laravel session

其次是Laravel Paginate Fucntion

Laravel 的分页器与 query builderEloquent ORM 集成,并提供方便易用的数据库结果分页。 laravel 中用于分页的函数是 paginate() function with model.

$users = App\User::paginate(15);

此函数检索15个项目从数据库。之后,您必须管理 previousnext 以及其他带有数字的页面的链接。 在链接中,您必须传递另一个页码的数据,例如显示 第一页,然后您必须在 next 按钮中提供 第二页码关联。 然后,如果您单击 next 链接,您将获得另一个 15items 用于您的页面。这就是 laravel 分页的工作原理。 有关实现 laravel 分页的更多有用内容,请点击链接Laravel pagination

谢谢。

【讨论】:

  • 你检查我的答案了吗?告诉我是否有任何疑问我会尝试解决它或者它有帮助只需接受我的回答@robspin
  • 感谢您的回复! 1.那么Controller页面和刀片页面的数据处理没有区别吗? 2.分页是否一次从数据库中获取所有数据并存储在服务器会话中。(因此数据更多,加载更多到服务器,尽管它收到一页一链接,但不要为用户的机器购买。
  • No Laravel 分页只获取 paginate(15) 函数中定义的数据,就像这 15 个数据将从数据库中获取。我们可以在这个函数中传递任何值。
猜你喜欢
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多