У меня есть Ax ios, который возвращает 2 запроса от 2 контроллеров, второй запрос не возвращает никаких данных - PullRequest
0 голосов
/ 18 июня 2020

это конфигурация 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 голосов
/ 23 июня 2020

Я удаляю второй запрос и просто перемещаю его в смонтированную функцию и вызываю эту функцию всякий раз, когда строка с идентификатором совпадает с записью

    Products.showCat().then( data => {
      this.showCat = data.data
      // alert(this.showCat)
    })
0 голосов
/ 22 июня 2020

Не могли бы вы проверить порядок, в котором маршруты определены в бэкэнде.

Вы должны определить products/category перед products/{id} В противном случае, когда вы вызываете products/category контроллер для products/{id} будет вызываться с помощью id = 'category'.

Возможно, это проблема для вас.

Порядок маршрута go для.

    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');
...