[英]Laravel - Vue js application not showing data properly
working with Vue js and Laravel REST API.使用 Vue js 和 Laravel REST API。 database is mysql.
数据库是mysql。 but when try show ContactList it is not displaying here.. web.php
但是当尝试显示 ContactList 它没有显示在这里.. web.php
Route::prefix('api')->group(function() {
//get contact
Route::get('getContacts','ContactController@getContacts');
});
ContactController.php联系人控制器.php
class ContactController extends Controller
{
public function getContacts() {
$contacts = Contact::all();
return $contacts;
}
}
ContactList.vue联系人列表.vue
<tbody v-for="contact in contacts" :key="contact.id">
<tr>
<th scope="row">{{ contact.id}}</th>
<td>{{ contact.name}}</td>
<td>{{ contact.email}}</td>
<td>{{ contact.designation}}</td>
<td>{{ contact.contact_no}}</td>
<td><button class="btn btn-danger btn-sm">Delete</button></td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
name:'Contact',
created() {
this.loadData();
},
methods: {
loadData() {
let url = this.url + '/api/getContacts';
this.axios.get(url).then(response => {
this.contacts = response.data
console.log(this.contacts);
});
},
mounted() {
console.log('Contact List Component Mounted');
},
data() {
return {
url: document.head.querySelector('meta[name="url"]').content,
contacts:[]
}
}
}
}
</script>
console displaying following error **[Vue warn]: Property or method "contacts" is not defined on the instance but referenced during render.控制台显示以下错误 **[Vue 警告]:属性或方法“联系人”未在实例上定义,但在渲染期间被引用。 Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.
通过初始化该属性,确保该属性是反应性的,无论是在数据选项中,还是对于基于类的组件。 See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties .
请参阅: https ://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties。
found in在发现
---> at resources/js/components/ContactList.vue ** ---> 在资源/js/components/ContactList.vue **
In Laravel Side send response in a proper format在 Laravel 端以正确的格式发送响应
$contacts = Contact::all();
$data['contacts'] = $contacts;
return response()->json(['status' => true, 'message' => 'Contacts collected', 'data' => $data]);
Vue.js Side Vue.js 端
let url = this.url + '/api/getContacts';
this.axios.get(url).then(response => {
this.contacts = response.data.data.contacts
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.