Laravel Controller/Modal 全部排序()
Laravel Controller/Modal order by in all()
正在尝试对我的 table 进行排序。数字是category_id
而且不是按数字排序的(1和2在table的最下面),我要排序
控制器:
public function fetchcategory(){
$all_categories = HmsBbrCategory::all();
return response()->json([
'all_categories'=>$all_categories,
]);
}
当我尝试下面的代码时,我的控制台出现 500 内部服务器错误:
$all_categories = HmsBbrCategory::orderBy('category_id', 'ASC')->all();
orderBy 代码我做错了什么?
仅供参考,了解all()
和get()
的区别
全部()
它是一个 static method
,因此您无法执行 all() 方法中的其他 queries.Only 选项,您可以 select columns
.
public static function all($columns = ['*'])
{
return static::query()->get(
is_array($columns) ? $columns : func_get_args()
);
}
如果我们看到静态 all() 方法的实现。在内部它调用 get() method
1.all()
接受 columns as array
。默认设置为 *
,表示选择所有列。
2.Inside那个方法,我们可以看到get()
被调用了。所以在 get 之后我们不能调用任何查询操作所以它抛出错误
get()
是 Eloquent 生成器 \Illuminate\Database\Eloquent\Builder
只是你必须更新这一行
$all_categories = HmsBbrCategory::orderBy('category_id', 'ASC')->all();
进入
$all_categories = HmsBbrCategory::orderBy('category_id', 'ASC')->get();
然后你会得到你的结果。
正在尝试对我的 table 进行排序。数字是category_id
而且不是按数字排序的(1和2在table的最下面),我要排序
控制器:
public function fetchcategory(){
$all_categories = HmsBbrCategory::all();
return response()->json([
'all_categories'=>$all_categories,
]);
}
当我尝试下面的代码时,我的控制台出现 500 内部服务器错误:
$all_categories = HmsBbrCategory::orderBy('category_id', 'ASC')->all();
orderBy 代码我做错了什么?
仅供参考,了解all()
和get()
全部()
它是一个 static method
,因此您无法执行 all() 方法中的其他 queries.Only 选项,您可以 select columns
.
public static function all($columns = ['*'])
{
return static::query()->get(
is_array($columns) ? $columns : func_get_args()
);
}
如果我们看到静态 all() 方法的实现。在内部它调用 get() method
1.all()
接受 columns as array
。默认设置为 *
,表示选择所有列。
2.Inside那个方法,我们可以看到get()
被调用了。所以在 get 之后我们不能调用任何查询操作所以它抛出错误
get()
是 Eloquent 生成器 \Illuminate\Database\Eloquent\Builder
只是你必须更新这一行
$all_categories = HmsBbrCategory::orderBy('category_id', 'ASC')->all();
进入
$all_categories = HmsBbrCategory::orderBy('category_id', 'ASC')->get();
然后你会得到你的结果。