Я получаю ошибку 404, когда он не должен: laravel - PullRequest
0 голосов
/ 01 марта 2019

Я разработал API, и у меня возникла проблема с этой страницей. Я добавляю его в свой маршрут и всегда получаю ошибку 404 Я не знаю, почему

этого моего контроллера:

class InsertPPictureController extends Controller
{
    public function profilepicture (Request $request)
    {
        $input = $request->all();

        $validator =    Validator::make($input, [
            'id_user'=> 'required',
            'picture'=> 'image|nullable|max:1999'
        ] );

        $user = User::findOrFail($request->id);
        $user_id = $request->id ;

        if($request->hasFile('picture')){
            // Get filename with the extension
            $filenameWithExt = $request->file('picture')->getClientOriginalName();
            // Get just filename
            $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
            // Get just ext
            $extension = $request->file('picture')->getClientOriginalExtension();
            // Filename to store
            $fileNameToStore= $user_id.'.'.$extension;
            // Upload Image
            $path = $request->file('picture')->storeAs('public/profilepic', $fileNameToStore);
            $user->pic_path = $fileNameToStore ;
            $user->update();


        } else {
            $fileNameToStore = 'noimage';
        }

        return response()->json(' Success : User updated with success ',200);
    }
}

и это мой api.php

Route::group(['middleware' => ['jwt.verify']], function() {
    Route::get('logout', 'AuthController@logout');
    Route::post('postcreditscards', 'CreditsCardsController@stockcards');
    Route::get('getcreditscards', 'CreditsCardsController@index');
    Route::get('getmybalance', 'MyBalanceController@index');
    Route::get('getuserdata', 'AuthController@getuser');
    Route::post('sendMoneyTransaction', 'MyBalanceController@updatebalance');
    Route::post('isvalidnumber', 'AuthController@validnumber');
   Route::post('updateuser', 'AuthController@updateuser');
     Route::post('insertprofilepicture','InsertPPictureController@profilepicture');

});

все страницы работают нормально, только эта страница не работает

Route::post('insertprofilepicture','InsertPPictureController@profilepicture');

Ответы [ 2 ]

0 голосов
/ 01 марта 2019
echo '<pre>'.print_r($user,1);die(); 

просто поместите в эту строку после $ user = User :: findOrFail ($ request-> id);линия.Я предлагаю вам проверить передачу массива данных на этот контроллер.если это пройдено, после строки за строкой вы можете проверить.

0 голосов
/ 01 марта 2019

Вы получаете ошибку 404 из-за следующей строки в коде вашего контроллера:

$user = User::findOrFail($request->id);

Предоставляемая вами id не существует в вашей таблице пользователей и, каквы не перехватываете исключение, поэтому Laravel возвращает ответ 404, который на самом деле ModelNotFoundException

Ссылка здесь

Перейти к разделу «Не найдены исключения»вышеуказанная ссылка.Вот несколько строк из документа:

If the exception is not caught, a 404 HTTP response is automatically sent back to the user

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