简体   繁体   English

Laravel - Vue js 应用程序未正确显示数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM