404 Не Найдено!URL не найден.Обновление ключа API Как решить? - PullRequest
0 голосов
/ 26 февраля 2019

My Route API:

Route::get('/outline/{key}',"OutlineController@show");
Route::post('/outline',"OutlineController@store");
Route::delete('/outline/{key}',"OutlineController@destroy");
Route::put('/outline/{key}',"OutlineController@update");

Мой код контроллера:

public function update(Request $request ,$key)
{
    $request->validate([
        'title' => 'string|required',
        'content' => 'string|required',
        'pseudo' => 'string',
        'email' => 'email|required'
    ]);

    try {
        if($outline = Outline::where('key',$key)->first()){

            $outline = Outline::where('key',$key)->first();

            $outline->title = $request->title;
            $outline->content = $request->content;
            $outline->pseudo = $request->pseudo;
            $outline->email = $request->email;
            $outline->save()->refresh();

            return response()->json([
                'message' => "Success!",
                'outline' => $outline
            ],200);

        } else {
            return response()->json([
                'message' => "Not found!"
            ],404);
        }
    } catch (\Exception $e){
        report($e);
        return response()->json([
            'message' => "Something went really wrong!"
        ],500);
    }

}

На этой странице показано 404 не найдено:

enter image description here

Я пробовал последние 3 часа, но не получил ответа.Пожалуйста, решите это ...

Я пытаюсь метод пут и патч, но страница 404 не найдена Показать ..

Дополнительно Спасибо за помощь .....

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Прежде всего, первая часть решения проблем, таких как эта проверка, можете ли вы пройти по маршруту.Поэтому, если вы не пишете тест, просто используйте dd () при обновлении;

public function update(Request $request ,$key)
{
    dd($request, $key);

}

Если вы не можете пройти по маршруту, попробуйте использовать простой клиент отдыха, такой как почтальон или бессонница, для создания запроса или простой формы, подобной этой;

// if you using routes/api.php /api/outline/1234
<form action="/outline/1234" method="POST">
    @csrf
    @method('PUT')

    ...
</form>

Если вы попали в маршрут, то ваша проблема лежит здесь;

return response()->json([
                'message' => "Not found!"
            ],404);
0 голосов
/ 26 февраля 2019

На вкладке заголовков вашего запроса убедитесь, что установлены следующие заголовки.Это скажет Laravel, что вы отправляете Ajax-запрос, а не стандартный HTTP-запрос.

Content-Type: application/json
Accept: application/json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...