Laravel restful api error 500 (сохранить и уничтожить)

Я новичок в restful api, и я столкнулся с проблемой: когда я запрашиваю уничтожение с помощью метода удаления и хранилище с помощью метода post, оба возвращают ошибку 500. Но я использую метод get для запроса индекса и отображения, оба в порядке. В чем проблема? Вот мои коды и запрос:

удалить http: //***.com/RestfulPrac/public/customers/10000001

получить http: //***.com/RestfulPrac/public/customers/10000001

сообщение http: //***.com/RestfulPrac/public/customers


 class CustomersController extends Controller
 {
    public function index(){

    $customersInfo = customers::all();
    return $customersInfo;

    }

    public function show($cust_id){

    $customer = customers::where('cust_id',$cust_id)->first();
    return $customer;
    }
    public function store()
    {

    echo "store";
    }

   public function destroy()
   {

      return "success";
   }
}

Route::resource('customers','CustomersController');

Журнал доступа apache: "DELETE / RestfulPrac / public / customers / 1000000001 HTTP / 1.0" 500 20246 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например Gecko) Chrome / 50.0.2661.102 Safari / 537,36 "

Журнал ошибок apache: [четверг, 02 июня, 09:09: 24.324782 2016] [согласование: ошибка] [pid 4328: tid 1676] [клиент 127.0.0.1:4940] AH00690: нет приемлемого варианта: D: / XAMPP / apache / error / HTTP_NOT_FOUND.html.var

Laravel.log: local.ERROR: exception 'Illuminate \ Session \ TokenMismatchException' в F: \ PhpstormProjects \ RestfulPrac \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Middleware \ VerifyCsrfToken.php: 67 Трассировка стека:

Если кто-нибудь может мне помочь, я буду признателен! Заранее спасибо!


person vancake    schedule 02.06.2016    source источник
comment
Вы проверяли журнал ошибок laravel, чтобы узнать, есть ли там что-нибудь, или журнал ошибок веб-сервера?   -  person lagbox    schedule 02.06.2016
comment
@lagbox Я отредактировал сообщение   -  person vancake    schedule 02.06.2016
comment
методы show и index мне подходят ... но store и destroy не работают   -  person vancake    schedule 02.06.2016
comment
Можете ли вы проверить журнал laravel в хранилище / журналах и ваш apache error.log   -  person lagbox    schedule 02.06.2016


Ответы (2)


Основываясь на журнале ошибок Laravel, у вас есть несоответствие токена csrf. Если вы создаете API, вы, вероятно, не захотите использовать «веб-промежуточное программное обеспечение». Эта группа промежуточного программного обеспечения запускает сеанс и проверяет токен csrf для всех запросов, которые не используют HTTP-методы READ (GET, HEAD, OPTIONS).

По умолчанию Laravel помещает все ваши маршруты в routes.php в группе маршрутов с примененным промежуточным программным обеспечением 'web' (если в версии> = 5.2.27), когда он загружает их в ваш RouteServiceProvider в app\Providers.

Вероятно, с этого и следует начать, судя по журналу ошибок Laravel.

Это может помочь: VerifyCsrfToken всегда вызывается при переходе к API Middleware Laravel 5.2.35

person lagbox    schedule 02.06.2016
comment
Без проблем. Если вы используете api без сохранения состояния, вам вообще не понадобится группа промежуточного программного обеспечения «web». Если вам нужны сеансы, вам это нужно. Вы можете исключить свои маршруты api из проверки csrf в массиве $except промежуточного ПО, вы можете использовать подстановочные знаки в URI, если чувствуете необходимость использовать группу «web». - person lagbox; 02.06.2016

просто перейдите к app\kernel.php

комментарий csrf как это

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        //  \App\Http\Middleware\VerifyCsrfToken::class,
    ],

    'api' => [
        'throttle:60,1',
    ],
];

Вам не понадобится защита csrf, если вы создаете api

person Achraf Khouadja    schedule 02.06.2016
comment
И тебе спасибо!! - person vancake; 02.06.2016