Daten abrufen aus der Datenbank mit laravel und vuejs
Ich bin versucht zu Holen von Daten von der Datenbank mit Laravel und Vue.js.
Ergebnis bekomme ich keine. Aber firebug-Konsole zeigt die Antwort. Finden Sie das angehängte Bild. Überprüfen Sie bitte mein code und korrigieren Sie mich.
data.blade.php
@extends('layouts.app')
@section('title', 'Customers List')
@section('styles')
@endsection
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Customers List</div>
<div class="panel-body">
<table class="table table-hover table-bordered" id="app">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Reference ID</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
$i=1;
?>
<tr v-for="message in messages">
<td> {{ $i }} </td>
<td> @{{ message.name }} </td>
<td> @{{ message.reference_id }} </td>
<td><a href="/customers/list/process/" class="btn btn-primary btn-xs" role="button">Click Here</a></td>
</tr>
<?php $i++; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script src="/js/vue.js"></script>
<script src="/js/vue-resource.min.js"></script>
<script src="/js/customers.js"></script>
@endsection
customers.js
new Vue({
el: '#app',
ready: function() {
this.fetchMessages();
},
methods: {
fetchMessages: function() {
this.$http.get('/customers/list/data', function(messages) {
alert(messages);
this.$set('messages', messages);
});
}
}
});
Controller
public function showCustomersData()
{
$listCustomers = Customer::select('id', 'name', 'reference_id')
->orderBy('id', 'desc')
->get();
return response()->json(['messages' => $listCustomers]);
}
Route
Route::get('/customers/list/data', [
'as' => 'customerListData', 'uses' => 'CustomerController@showCustomersData'
]);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich bearbeitet der controller Teil. Nun bekam ich das Ergebnis.
Ersetzen
return response()->json(['messages' => $listCustomers])
mitreturn $listCustomers
.Können Sie brauchen, um pre-initialisieren Sie die variable Nachrichten in der Vue-Daten-Objekt als pro die Warnmeldung in Ihrer Konsole. Ich denke, es hängt von der version von VueJs, die Sie verwenden. Versuchen:
Hier ist ein Beispiel mit simulierten ajax-request update-raster-Daten. Hofft, Ihnen zu helfen.
JS:
CSS:
HTML:
P. S.
Die erste Warnung sagt, dass Sie den code ändern, ist es bevorzugt
Die zweite Warnung weist Sie auf pre-init die variable
messages
imdata
.Die Letzte, leider weiß ich nicht, habe es nicht sehen, bevor.