我有 Axios,其中 returns 2 个请求来自 2 个控制器,第二个请求没有 return 任何数据
I have Axios which returns 2 request from 2 controllers the second request does not return any data
这是配置 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);
}
}
你能检查一下后端定义路由的顺序吗
你应该在 products/{id}
之前定义products/category
否则,当您调用 products/category
时,将使用 id = 'category'
.
调用 products/{id}
的控制器
也许这就是您的问题。
你应该去的路线排序。
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');
我删除了第二个请求并将其移动到挂载的函数中,并在 id 与记录匹配的行时调用此函数
Products.showCat().then( data => {
this.showCat = data.data
// alert(this.showCat)
})
这是配置 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);
}
}
你能检查一下后端定义路由的顺序吗
你应该在 products/{id}
之前定义products/category
否则,当您调用 products/category
时,将使用 id = 'category'
.
products/{id}
的控制器
也许这就是您的问题。
你应该去的路线排序。
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');
我删除了第二个请求并将其移动到挂载的函数中,并在 id 与记录匹配的行时调用此函数
Products.showCat().then( data => {
this.showCat = data.data
// alert(this.showCat)
})