Мой первый компонентный контроллер Symfony 2.4 внутри OpenEMR - PullRequest
0 голосов
/ 11 октября 2019

Я строю внутри существующего приложения 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

Я построил контроллер, не используя слово controller financialSummaryByInsurance, используя PHPStorm для помощи в именовании и создании класса.

    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. Вот почему я запутался относительно сообщения об ошибке в журнале ошибок. Должно быть, я что-то упустил, чтобы снять этот кадр с первого этажа

Ответы [ 2 ]

1 голос
/ 11 октября 2019

похоже класс не найден ошибка.

попробуйте выполнить composer dump-autoload для повторной генерации файла автозагрузки

, и я вижу, что ваш класс маршрутизации не праводин, это должно быть это

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

ref: https://symfony.com/doc/2.8/controller.html

0 голосов
/ 11 октября 2019

Чтобы отобразить страницу, возвращаемую вашим контроллером financialSummaryByInsurance, вы должны вызвать ее с помощью HTTP-запроса, соответствующего заданному вами маршруту insurancepaid.

Контроллер - это просто класс PHP, и он не будет отображать HTML-страницу, если вы ее создадите.

Если вы делаете вызов на GET http://yourdomain/library/financialReports/src/financialSummaryByInsurance/insurancepaid (<- это странное определение пути маршрута, кстати), ваш код должен вернуть вам ответ HTML. </p>

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