声明一个“helper”函数(请参阅 Laravel 的 helpers 以了解将其放置在何处以及如何自动加载它)并在需要排序的任何地方使用它,如下所示:
排序函数:
function mySortHelper($a, $b) {
// ... sorting code goes here ...
}
当你需要使用它时:
$collection->sortBy("myHelperFunction");
编辑:添加辅助函数
这是我在我的应用程序中执行此操作的方式。
在app 目录中,创建一个名为Helpers 的文件夹。
在Helpers 目录中,创建一个名为(例如)Sorting.php 的新 PHP 文件。
在这个新文件中,像这样创建你的函数:
if ( ! function_exists('mySortHelper'))
{
function mySortHelper($a, $b)
{
return $a<$b ? -1 : 1;
}
}
此代码是从 Laravel 框架帮助程序文件(位于 vendor/laravel/framework/src/Illuminate/Foundation/helpers.php)中复制的(有更改)。
那么剩下的就是自动加载了。更新您的 composer.json 文件:
"autoload": {
"files": [
...
"app/Helpers/Sorting.php",
...
]
},
composer.json 的autoload 部分中可能还有其他部分或files 下列出的其他内容。只需将您创建的文件添加到composer.json 的该部分并运行composer dump-autoload 即可更新。现在,您的辅助函数将在您的 Laravel 应用程序中可用。