首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个控制器上工作时,每个请求都会得到404

在两个控制器上工作时,每个请求都会得到404
EN

Stack Overflow用户
提问于 2019-01-01 21:58:14
回答 1查看 55关注 0票数 1

我正在开发一个使用slim-3的后端系统。在应用程序中,我有多个控制器,就像图书和用户一样,有两个不同的控制器,每个控制器的所有调用都是placed.So,当我在index.php文件中声明控制器时,只有一个控制器请求是接受其他控制器的请求,返回404页,不是found.When,我删除一个控制器的声明,然后其他控制器工作。例如,我有两个控制器,像用户控制器和提供者控制器,当我在index.php中声明这两个控制器时,只有提供者控制器是worked.But,当我删除提供者控制器的声明时,用户控制器调用工作正常,但是当我添加提供者控制器时,用户控制器api调用返回404。下面是index.php代码

代码语言:javascript
复制
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App;
$app->get('/hello/{name}', function (Request $request, Response $response, 
array $args) {
$name = $args['name'];
$response->getBody()->write("Hello, $name");

return $response;
});
require '../src/controllers/UserController.php';
require '../src/controllers/ProviderController.php';
require '../src/models/GeneralResponse.php';
require '../src/database/UserOperations.php';
require '../src/database/ProviderOperations.php';
require '../src/models/User.php';
require '../src/models/Provider.php';
require '../src/utils/Utils.php';

$app->run(); 

下面是provider控制器

代码语言:javascript
复制
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '../vendor/autoload.php';
$app = new \Slim\App;
$app->post('/provider/register',function($request,$response,$args){
    try{
    $appresponse=new GeneralResponse();
    $formDataArry = $request->getParsedBody();
    $email=$formDataArry['email'];
    $passwordRaw=$formDataArry['password'];
    $firstname=$formDataArry['firstname'];

});

这是用户控制器

代码语言:javascript
复制
<?php
require '../vendor/autoload.php';
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

$app = new \Slim\App;
//Registration of user end point
$app->post('/user/register',function($request,$response,$args){
    try{
    $appresponse=new GeneralResponse();
    $formDataArry = $request->getParsedBody();
    $email=$formDataArry['email'];
    $passwordRaw=$formDataArry['password'];
    });

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-01 22:56:22

基本上,我在每个控制器中创建了单独的\Slim\App实例,这些实例覆盖了索引文件的实例,因此它忽略了每个控制器的要求,只需从控制器文件中删除$app = new \Slim\App;,但index.php.Problem将由此修复。For more information visit this

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53996058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档