Я не могу понять, почему этот API Laravel продолжает возвращать 404

#reactjs #laravel #laravel-5 #eloquent #axios

Вопрос:

У меня есть этот контроллер:

     <?php

namespace AppHttpControllersAPI;

use IlluminateHttpRequest;
use AppHttpControllersController;
use AppModelsAssetgroup;
use AppModelsAsset;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesDB;


class AssetgroupController extends Controller
{
    
    
    public function __construct()
    {
        $this->middleware(['jsonvalidation:CreateAssetGroupResource'])->only('store');
        $this->middleware(['jsonvalidation:CreateAssetGroupResource'])->only('update');
    }
   
    public function update(Request $request, Assetgroup $assetgroup, Asset $asset = null)
    {
        **********


    }
 

Этот маршрут в api.php

 Route::apiResource('/assetgroups', 'APIAssetgroupController');
 

И это называется по его просьбе axios

 Axios.put(`${API_URL}assetgroups/${division.id}`, {
            added
        }).then(r => {
            // DETECT ERROR

            toast('Users assigned!', {
                type: toast.TYPE.SUCCESS,
                autoClose: 2500
            });

            this.setState({
                added: [],
                selectedUsers: r.data.selected_users,
                saving: false,
                users: r.data.users
            });
        });
 

Я новичок в laravel и не могу понять, почему это не работает. Браузер возвращает

 Request URL: http://127.0.0.1:8000/api/assetgroups/22
Request Method: PUT
Status Code: 400 Bad Request
Remote Address: 127.0.0.1:8000
Referrer Policy: strict-origin-when-cross-origin
 

Любая помощь будет признательна. Спасибо.

Комментарии:

1. Нужно проверить пару вещей: ваша группа api под префиксом api, удалена ли группа активов с идентификатором 22?

2. Да, группа API находится в разделе » api/», и в группе активов нет столбца «мягкое удаление» в таблице. Я могу получить к нему доступ с помощью запроса «Get» от того же контроллера/маршрута в методе » index ()».

3. Вы используете axios. Настроен ли он для размещения маркера csrf laravel в заголовке своих запросов? Я думаю, что по умолчанию это было в resources/js/app.js или бутстрэп,Джей си. Кроме того, вы проводите некоторую проверку в методе обновления? Можете ли вы опубликовать код этого метода, а также промежуточное программное обеспечение jsonvalidation?

4. Это не позволит мне опубликовать код, так как он слишком длинный. Я засунул контроллер сюда: sandbox.onlinephpfunctions.com/code/…

5. Я не уверен в маркере csrf, я немного не в себе здесь.

Ответ №1:

измените это :

 Axios.put(`${API_URL}assetgroups/${division.id}`, {
 

к этому и попробуем:

 Axios.put(`${API_URL}/assetgroups/${division.id}`, {