I'm trying to get some records from my DB and I'm getting Method [orderBy] does not exist
I'm making this request with Axois.
Route
Route::get('/get-order-statuses', 'Backend\Orders\OrderStatuses@index');
Controller Code
public function index()
{
$statuses = OrderStatuses::orderBy('created_at', 'desc')
->get(['id', 'status', 'status_description']);
return response()
->json([
'statuses' => $statuses
]);
}
Model Code
protected $table = 'order_statuses';
protected $fillable = [
'statues', 'status_description', 'userId',
];
Vue template
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
is a method of QueryBuilder
, so before using it, you should get instance of QueryBuilder
.
Also get
does not take fields as it's argument.
Considering abovementioned your query can be rewritten as:
$statuses = OrderStatuses::select('id', 'status', 'status_description')
->orderBy('created_at', 'desc')
->get();
Or:
$statuses = DB::table('order_statuses')
->select('id', 'status', 'status_description')
->orderBy('created_at', 'desc')
->get();
Also
$statuses = OrderStatuses::all()
->select('id', 'status', 'status_description')
->orderBy('created_at', 'desc')
->get();
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras