此路由api.php

时间:2019-12-19 11:21:04

标签: php laravel api laravel-5 routes

我正在尝试使用laravel制作API。它们在localhost上运行良好,但是当我将它们上传到服务器时,它们给我错误

  

405方法不允许

routes / api.php

<?php

use Illuminate\Http\Request;

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('logout', 'API\LoginController@logout');

Route::resource('users', 'API\UserAPIController');

Controllers \ API \ LoginController.php

<?php

namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\User;
use App\Http\Controllers\API\APIBaseController as APIBaseController;
use DB;
use Validator;
use Hash;

class LoginController extends APIBaseController
{

    public function logout(Request $request)
    {       
        $user_id=$request->user_id;
        $user = User::find($user_id);
        if (is_null($user)) {
            return $this->sendError('User not found.');
        }
        User::where('id', $user->id)
        ->update([
            'imei_no'=>'',
            'device_id'=>''

        ]);
        return $this->sendResponseArray($user_id, 'User successfully logout.');
    }
}

Postman屏幕截图(服务器运行),其中显示错误

enter image description here

Postman屏幕截图(本地主机运行)成功执行

enter image description here

我已经尝试过许多在Stackoverflow上发布的答案,但是找不到任何解决方案

编辑:

我尝试在Routes中使用直接POST方法功能,但收到相同的错误,因此与Controller无关

Route::post('testPost', function(){
    echo "Inside POST";
});

2 个答案:

答案 0 :(得分:0)

使用any,可能会有帮助

Route::any('logout', 'API\LoginController@logout');

答案 1 :(得分:0)

不确定,但这必须是一个get请求。

Route::get('logout', 'API\LoginController@logout');

带有参数

Route::get('logout/{user_id}', 'API\LoginController@logout');