选择前10行 - Laravel Eloquent

Jon*_*erz 48 php orm laravel eloquent

到目前为止,我有以下模型:

class Listing extends Eloquent {
     //Class Logic HERE
}
Run Code Online (Sandbox Code Playgroud)

我想要一个基本函数来检索我的表"listing"的前10行并将它们传递给视图(通过控制器?).

我知道这是一项非常基本的任务,但我找不到一个简单的指南,它实际上逐步解释了如何显示一组基本结果,同时详细说明了模型,控制器和视图文件中所需的内容.

Vit*_*Kos 94

首先,您可以使用Paginator.这很简单:

$allUsers = User::paginate(15);

$someUsers = User::where('votes', '>', 100)->paginate(15);
Run Code Online (Sandbox Code Playgroud)

变量将包含Paginator类的实例.您的所有数据都将存储在data密钥下.

或者你可以做类似的事情

Model::all()->take(10)->get();
Run Code Online (Sandbox Code Playgroud)

有关更多阅读请考虑以下链接:

  • 我认为`get();`参数现在已经出现在更新版本的laravel上了 (7认同)
  • 我想你会找到它: - > take(10) - > get(); (2认同)
  • 我在 5.2 上使用 `Model::take(10)->get()` 没有问题 (2认同)
  • `Model :: take(10)-> get();`在laravel 5.4中不起作用 (2认同)

Luc*_* C. 19

laravel 5中最简单的方法是:

$listings=Listing::take(10)->get();

return view('view.name',compact('listings'));
Run Code Online (Sandbox Code Playgroud)


Ama*_*ade 13

另一种方法是使用一种limit方法:

Listing::limit(10)->get();
Run Code Online (Sandbox Code Playgroud)

如果您不尝试实现分页,这可能很有用,例如,从表中返回10个随机行:

Listing::inRandomOrder()->limit(10)->get();
Run Code Online (Sandbox Code Playgroud)


sab*_*zdi 7

这在LARAVEL 8、9、10及以上版本中也有效

Model::query()->take(10)->get();
Run Code Online (Sandbox Code Playgroud)