Метод show в laravel вместо этого возвращает метод index - PullRequest
1 голос
/ 27 марта 2019

У меня проблема при попытке использовать метод show в контроллере ресурсов в laravel 5.7. Я работаю с VueJS и Axios для http запросов. Метод индекса вызывается вместо метода show. Я пропущу вызов с методом get и параметром ID .

Маршруты:

POST      | products                                | products.store                    | App\Http\Controllers\ProductoController@store                             | web          |
|        | GET|HEAD  | products/create                         | products.create                   | App\Http\Controllers\ProductoController@create                            | web          |
|        | DELETE    | products/{product}                      | products.destroy                  | App\Http\Controllers\ProductoController@destroy                           | web          |
|        | PUT|PATCH | products/{product}                      | products.update                   | App\Http\Controllers\ProductoController@update                            | web          |
|        | GET|HEAD  | products/{product}                      | products.show                     | App\Http\Controllers\ProductoController@show                              | web          |
|        | GET|HEAD  | products/{product}/edit                 | products.edit                     | App\Http\Controllers\ProductoController@edit                              | web          |

web.php:


Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

//Productos
Route::resource('products', 'ProductoController');
Route::get('duplicar/{param?}', 'ProductoExtController@duplicar');
Route::post('mostrarProductos', 'ProductoExtController@mostrarProductos');
Route::post('guardarValoresEditados', 'ProductoExtController@guardarValoresEditados');
Route::get('imprimirListadoPrecios', 'ProductoExtController@imprimirListadoPrecios');
Route::post('mostrarProductosStickers', 'ProductoExtController@mostrarProductosStickers');
Route::post('imprimirStickers','ProductoExtController@imprimirStickers');



//Colecciones
Route::resource('colecciones', 'ColeccionController');

//Categorias
Route::resource('categorias', 'CategoriaController');

//Crostas
Route::resource('crostas', 'CrostaController');
Route::get('crostasaut/{param?}', 'CrostaExtController@autocomplete');

//Folias
Route::resource('folias', 'FoliaController');
Route::get('foliasaut/{param?}', 'FoliaExtController@autocomplete');

Route::get('{path}', 'HomeController@index')->where('path','([A-z\d-\/_.]+)?');

А это мой http-запрос с axios:

editarProducto(pDatosFila){
      axios.get('products', {
        params: {
          id: pDatosFila.f014_id
        }
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      })
      .then(function () {
        // always executed
      }); 
    }

И в завершение это ответ:

current_page: 1
data: [{f014_id: 25, f014_id_old: null, f014_nombre: "carlos ruales", f014_deleted: null,…},…]
first_page_url: "http://localhost:8000/products?page=1"
from: 1
last_page: 1
last_page_url: "http://localhost:8000/products?page=1"
next_page_url: null
path: "http://localhost:8000/products"
per_page: 10
prev_page_url: null
to: 7
total: 7

1 Ответ

4 голосов
/ 27 марта 2019

То, что вы в настоящее время делаете, это:

axios.get('products', {
    params: {
      id: pDatosFila.f014_id
    }
})

эквивалентно: axios.get ('/ products? Id = id ') (НЕ ПРАВИЛЬНЫЙ ФОРМАТ)

Что вам нужно сделать, это:

axios.get ('/ products / product_id ')

Итак, вы можете сделать что-то вроде:

axios.get('products/'+ pDatosFila.f014_id)

и это будет работать.:)

PS: всегда проверяйте вкладку сети в инструментах разработчика в браузере.

Ссылка: axios

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...