繁体   English   中英

Vue.js和Laravel传递json数据

[英]Vue.js and Laravel passing json data

我一直致力于构建一个简单的表,该表从正在查询 json 数据的 mongodb 数据库获取数据,而不是需要将数据传递给前端的 vue 组件,但我无法理解 json 数据从 laravel 转移到 vue. 要理解这里的代码是我到目前为止所做的:

api.php 路线:

Route::middleware('api')->group(function () {
Route::resource('/home', [ProductController::class,'home']);
});

web.php 路线:

Route::get('/home', [PostController::class,'home']);

PostController Home 方法:

public function home() {
    $posts = Post::paginate(4);

    return response()->json($posts);
}

主页组件:

 <template> <div> <table> <tr> <td>Id</td> <td>Title</td> <td>Status</td> </tr> <tr v-for="El in results" v-bind:key="El.id" > <td>{{El.id}}</td> <td>{{El.STATUS}}</td> </tr> </table> </div> </template> <script> export default{ data() { return { results: [] }; }, methods: { fetch() { axios.get('/api/home').then(response => this.results = response.data).catch(error => console.log(error)); } } } </script>
主页.blade.php

 @extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">Data</div> <div class="card-body"> <home-component></home-component> </div> </div> </div> </div> </div> @endsection

所有这些看起来都很好,但是当我运行代码时,它只显示 json 并且不呈现任何 vue 组件。 任何帮助表示赞赏。

您正在使用/home URL 作为数据端点和 HTML 端点。 你应该做的是像这样设计它:

Route: GET /api/home
Returns: JSON data
Code: `return response()->json(...);`

Route:: GET /home
Returns: HTML data with javascript that requests /api/home
Code: `return view('home');`

两条路由都是普通的 http 请求,但一条只服务 JSON 数据,另一条服务 HTML 数据,由您的浏览器解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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