0

我正在现有的应用程序 OpenEMR 中构建。我正在努力为构建报告奠定基础。我按照本教程中的说明进行操作。

https://symfony.com/doc/2.8/page_creation.html#creating-a-page-route-and-controller

在写此求助请求时。我找到了这个答案。

我在 symfony 中的第一个控制器

我将建议的 routing.yml 添加到程序的配置中,错误没有改变。它仍在生成此错误。

 [11-Oct-2019 08:23:43 America/New_York] PHP Fatal error:  Uncaught Error: 
  Class 'OpenEMR\Finance\Reports\financialSummaryByInsurance' not found in 
   C:\oerm_dev\www\dev\mindfulemr4\interface\reports\insurance.php:5
    Stack trace:#0 {main} thrown in C:\oerm_dev\www\dev\mindfulemr4\interface\reports\insurance.php on line 5

所以,我采取的步骤是这些。我编辑了 composer.json 以添加命名空间。在下面添加中间行后,我使用 dumpautoloader -o 重新加载了作曲家。

        "OpenEMR\\Billing\\" : "library/billing/src",
        "OpenEMR\\Finance\\Reports\\" : "library/financialReports/src",
        "OpenEMR\\Pdf\\" : "library/pdf/src",

我使用安装了路由组件

   composer require symfony/routing 2.4

我使用 PHPStorm 来帮助命名和创建类来构建控制器,而不是使用单词控制器 FinancialSummaryByInsurance。

    namespace OpenEMR\Finance\Reports;   //This will function as my controller event though not named controller

    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing;                          //Making use of Symfony routing

    class financialSummaryByInsurance                      //Class controller name without the word controller
    {
        public function insurancepaid()
        {
            /**
             * @Route("/library/financialReports/src/financialSummaryByInsurance/insurancepaid", name = "insurancepaid")
             */
            return new Response("insurance data here my first controller from scratch"  );
        }

    }

然后,我想建立一个页面来调用控制器来显示来自控制器的信息。该文件名为 insurance.php,内容为。

    use OpenEMR\Finance\Reports\financialSummaryByInsurance;

    $show = new financialSummaryByInsurance;

    echo $show->insurancepaid();

PHPStorm 能够在 insurance.php 文件中找到并建议每个组件。这就是为什么我对错误日志中的错误消息感到困惑。在把这个框架从一楼弄下来的过程中,我一定遗漏了一些东西。

4

2 回答 2

1

似乎找不到类错误。

尝试执行 composer dump-autoload重新生成自动加载文件

我看到你的路由类不正确,应该是这个

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

参考:https ://symfony.com/doc/2.8/controller.html

于 2019-10-11T15:03:22.093 回答
0

要显示从您的控制器返回的页面financialSummaryByInsurance,您必须insurancepaid使用与您定义的路由匹配的 HTTP 请求来调用它。

控制器只是一个 PHP 类,如果您实例化它,它不会向您显示 html 页面。

如果您调用GET http://yourdomain/library/financialReports/src/financialSummaryByInsurance/insurancepaid(<- 这是一个奇怪的路由路径定义顺便说一句),您应该让您的代码返回一个 HTML 响应。

于 2019-10-11T16:33:25.920 回答