我正在尝试从数据库中获取一些记录,但收到方法 [orderBy] 不存在
我正在使用 Axois 发出此请求。
路线
Route::get('/get-order-statuses', 'Backend\Orders\OrderStatuses@index');
Controller 代码
public function index()
{
$statuses = OrderStatuses::orderBy('created_at', 'desc')
->get(['id', 'status', 'status_description']);
return response()
->json([
'statuses' => $statuses
]);
}
型号代码
protected $table = 'order_statuses';
protected $fillable = [
'statues', 'status_description', 'userId',
];
Vue 模板
import { get } from '../../helpers/api'
export default {
data() {
return {
isLoading: true,
loaded: false,
statuses: []
}
},
created() {
get('get-order-statuses')
.then((res) => {
console.log(res);
this.isLoading = false;
this.loaded = true;
})
}
最佳答案
orderBy
是QueryBuilder
的一个方法,因此在使用它之前,您应该获取QueryBuilder
的实例。
此外,get
也不将字段作为参数。
考虑到上述,您的查询可以重写为:
$statuses = OrderStatuses::select('id', 'status', 'status_description')
->orderBy('created_at', 'desc')
->get();
或者:
$statuses = DB::table('order_statuses')
->select('id', 'status', 'status_description')
->orderBy('created_at', 'desc')
->get();
还有
$statuses = OrderStatuses::all()
->select('id', 'status', 'status_description')
->orderBy('created_at', 'desc')
->get();
关于php - Laravel - Axois 请求上不存在方法 [orderBy],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49345498/