我有Axios,它从2个控制器返回2个请求,第二个请求不返回任何数据

时间:2020-06-18 10:17:58

标签: vue.js axios laravel-7

这是配置Vue

import Api from './Api'
import Csrf from './Csrf'

export default {
     showProd(id) {
        return Api.get('/products/' + id)
    },
    showCat(){
        return Api.get('/products/category')
    },
    loadProds () {
        return Api.get('/products')
    }

}

这是方法的内部:()

showProd (id) { 
  Products.showProd(id).then((response) => {//this code works
    this.show1prod = response.data
    console.log(this.show1prod.product_name)
  })
  Products.showCat().then((responseCat) => {//this returns empty
    this.showCat = responseCat.data
    console.log(this.showCat.category_name)
  })
  .catch((error) => {
    alert(error)
  })

}

这是我的第二个请求的控制器和api,我的状态均为200,所以我想我正在后端,但数据为空

Route::get('/products/category', 'ProductsCategoryController@category');

class ProductsCategoryController extends Controller
{
    public function category()
    {
        $category = ProductsCategory::all();
        return response()->json($category);
    }
}

2 个答案:

答案 0 :(得分:0)

您能否检查在后端定义路由的顺序。

您应该在{strong> products/category之前定义products/{id} 否则,当您调用products/category时,将使用products/{id}来调用id = 'category'的控制器。

也许这是您的问题。

您应该进行的路线订购。

    Route::get('/products/category', 'ProductsCateogryController@category');

    Route::post('/products/{id}', 'BlahController@blah');

    Route::get('/products', 'BlahBlahController@blahBlah');

如果以不同的顺序定义路线,则会出现问题。

您可以在控制器中添加某种日志记录,以查看实际正在调用哪个控制器。

    \Log::info('inside products');
    \Log::info('inside products/id');
    \Log::info('inside products/cateogry');

答案 1 :(得分:0)

我删除第二个请求,然后将其移至已挂载的函数中,并在ID匹配记录的行中调用此函数

pyinstaller myApp.py -p <your-path-to-this-point>\Lib\site-packages