按项目对 api 资源中的数据进行排序
Sort data in api resource by an item
我有这个数据库结构:
public function up()
{
Schema::create('skills', function (Blueprint $table) {
$table->id();
$table->string('name',50);
$table->integer('level');
$table->string('description',100);
$table->string('rule',100)->default('main'); // main | other | lang
$table->timestamps();
});
}
现在我想按 laravel api 资源
中的规则对这些数据进行排序
例如,当我调用 api 路由时
应该 return 这个 :
data{
main [
0 => {
'name' : 'name',
'level' : 'level',
'description' : 'description',
}
],
other [
0 => {
'name' : 'name',
'level' : 'level',
'description' : 'description',
}
],
lang [
0 => {
'name' : 'name',
'level' : 'level',
'description' : 'description',
}
],
}
那我应该怎么处理呢
我的数据库结构好吗?
ResourceCollection 比资源更好?
谢谢
您应该为 rule
字段添加索引以获得更好的查询性能。
https://laravel.com/docs/8.x/migrations#indexes
我认为您需要使用 QueryBuilder 的 orderBy
方法来处理它。
https://laravel.com/docs/8.x/queries#ordering
我有这个数据库结构:
public function up()
{
Schema::create('skills', function (Blueprint $table) {
$table->id();
$table->string('name',50);
$table->integer('level');
$table->string('description',100);
$table->string('rule',100)->default('main'); // main | other | lang
$table->timestamps();
});
}
现在我想按 laravel api 资源
中的规则对这些数据进行排序例如,当我调用 api 路由时 应该 return 这个 :
data{
main [
0 => {
'name' : 'name',
'level' : 'level',
'description' : 'description',
}
],
other [
0 => {
'name' : 'name',
'level' : 'level',
'description' : 'description',
}
],
lang [
0 => {
'name' : 'name',
'level' : 'level',
'description' : 'description',
}
],
}
那我应该怎么处理呢
我的数据库结构好吗?
ResourceCollection 比资源更好?
谢谢
您应该为 rule
字段添加索引以获得更好的查询性能。
https://laravel.com/docs/8.x/migrations#indexes
我认为您需要使用 QueryBuilder 的 orderBy
方法来处理它。
https://laravel.com/docs/8.x/queries#ordering