当 url 要求时,其余 API 无法在邮递员中工作

The Rest API not working in postman when requested by url

我已经在控制台中通过这个 cmd 启动了服务器,它工作正常

php -S localhost:8000 -t public

当我像这样在 postman 中调用 API 时:

localhost:8000/GitHub/twinfield/public/index.php/user

API 用于插入,但是当我这样调用时:

localhost:8000/GitHub/twinfield/user

报错如下:

(1/1) NotFoundHttpException in RoutesRequests.php (line 226) at Application->handleDispatcherResponse(array(0)) in RoutesRequests.php (line 164) at Application->Laravel\Lumen\Concerns{closure}() in RoutesRequests.php (line 413) at Application->sendThroughPipeline(array(), object(Closure)) in RoutesRequests.php (line 166) at Application->dispatch(null) in RoutesRequests.php (line 107) at Application->run() in index.php (line 28)

我的路由文件在 routes/web.php:

$router->get('/', function () use ($router) {
    //print_r('1234');die;
    return $router->app->version();
});

$router->get('user','userController@index');
$router->get('user/{id}','userController@getuser');      
$router->post('user','userController@createuser');
$router->post('user/{id}','userController@updateuser');    
$router->delete('user/{id}','userController@deleteuser');

我已经在 public/index.php 中尝试过这样解决,但没有成功。

$request = Illuminate\Http\Request::capture();
$app->run($request);

我在 Xampp 的本地主机上工作。数据库是 MySQL 并且 PHP 版本是 7.1.

在尝试了许多解决方案后,我觉得我犯了一个愚蠢的错误。即url:

localhost:8000/GitHub/twinfield/user

因为新服务器是通过命令启动的,所以它属于那个url。所以我在 postman 中使用了这个 url 和 get 而不是 post.

localhost:8000/user

你知道它 运行 就像一个魅力。此解决方案中不需要任何其他内容。

先生,您忘记了url link 否则可能会错过。它总是在我们启动服务器时(在 laravel 命令中是 php artisan serve),它总是属于调用它的那个路径。

就像你的情况一样,你的路径是 xampp/htdocs/GItHub/twinfield 管腔所在的位置(我想)。

localhost:8000/GitHub/twinfield/public/index.php/user

所以如果你这样调用:

localhost:8000/GitHub/twinfield/user

它永远不会工作,因为你定义了路线:

$router->get('user','userController@index'); 
$router->post('user','userController@createuser');

这就是为什么您必须只使用路线名称和类型的原因。打开 postman 并使用 type->get:

添加这一行
localhost:8000/user

您将获得数据库中的所有用户。如果您使用类型->post.

添加此行
localhost:8000/user

你应该 post 包含要保存的 Table 字段的正文。