gpt4 book ai didi

php - 如何在 Laravel 4 中进行对象排序,在 MySQL 中进行排序效率更高?

转载 作者:行者123 更新时间:2023-11-29 04:43:39 25 4
gpt4 key购买 nike

我刚刚关注了这个 todo list tutorial我有几个问题。

  1. 我想在 Laravel 中通过一个键对对象进行排序,但我无法解决这个问题。我应该在哪里实现这个?在 Eloquent ?在路线?在 Controller 中?对此有点困惑。我找到了 few links使用 usort 包装器检查排序方法,但我无法成功实现对象排序(按键待办事项列表项)。

  2. 用 SQL 对项目进行排序会更有效吗?使用这样的东西:

    $sql = "SELECT * FROM `items` ORDER BY `items`.`time` ASC LIMIT 0, 30 ";

我应该在哪里实现它?我觉得合乎逻辑的地方在我的项目模型中。但我不确定。

我可以发布任何相关代码,我只是不确定要发布什么,所以尽管问。而且我不想用不必要的代码向这篇文章发送垃圾邮件。

最佳答案

你应该在你的查询中执行排序,除非你有其他原因,如果 Laravel 使用 Eloquent 你可以做这样的事情:

$items = Item::orderBy('id')->get();

基本上,您可以将其放入您的 Controller 中,例如:

class UserController extends BaseController {

public function getAllUsers()
{
$users = User::orderBy('username')->get();
return View::make('users.index')->with('users', $users);
}

}

要使用 Eloquent 查询用户表,您必须创建一个 User 模型,如下所示:

class User extends Eloquent {
protected $table = 'users';
}

即使没有 User 模型,您也可以使用 Query Builder 来做同样的事情:

public function getAllUsers()
{
$users = DB::table('users')->orderBy('username')->get();
return View::make('users.index')->with('users', $users);
}

这样,您将能够从您的 Controller 查询您的 User 模型,然后将查询结果传递给您可以显示它们的 View 。这只是一个基本实现,但还有其他使用存储库类的方法,在 Laravel 应用程序中被称为最佳实践。这是一个广泛的主题,但您可以查看 this article .

如果你有这样的路线:

Route::get('users/all', 'UserController@getAllUsers');

然后将调用上面声明的类的getAllUsers() 方法来显示所有用户。另请阅读 the documentation ,这是任何 Laravel 框架引用的最佳位置。

关于php - 如何在 Laravel 4 中进行对象排序,在 MySQL 中进行排序效率更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com