Error 500 Internal Server Error

GET https://lk2.varnaradio.ru/media-plans/1/edit

Forwarded to ErrorController (8d9c70)

Exceptions

Unknown "string" filter in media_plans/form.html.twig at line 65.

Exception

Twig\Error\ SyntaxError

Show exception properties
Twig\Error\SyntaxError {#3985
  -lineno: 65
  -columnno: null
  -rawMessage: "Unknown "string" filter."
  -source: Twig\Source {#2657
    -code: """
      {% extends 'base.html.twig' %}\n
      {% block title %}{{ isNew ? 'Новый медиаплан' : 'Редактирование медиаплана' }}{% endblock %}\n
      {% block body %}\n
          {% include '_components/breadcrumbs.html.twig' with {items: [{label: 'Главная', path: path('app_home')}, {label: 'ПРОДАЖИ'}, {label: 'Медиапланы', path: path('app_media_plan_index')}, {label: isNew ? 'Создание' : mediaPlan.number}]} %}\n
          \n
          <h1 class="h3 mb-4">{{ isNew ? 'Новый медиаплан размещения' : 'Редактирование медиаплана ' ~ mediaPlan.number }}</h1>\n
      \n
          {% if isNew %}\n
              <div class="alert alert-info">\n
                  <i class="bi bi-info-circle"></i> Создание медиаплана для заказа <strong>{{ mediaPlan.order.number }}</strong>, клиент: <strong>{{ mediaPlan.client.name }}</strong>\n
              </div>\n
          {% endif %}\n
      \n
          <form method="post" data-controller="form-dirty form-submit" novalidate>\n
              <div class="row g-4">\n
                  <div class="col-lg-8">\n
                      <div class="card h-100">\n
                          <div class="card-header">Основные данные</div>\n
                          <div class="card-body">\n
                              <div class="row g-3">\n
                                  <div class="col-12">\n
                                      <label for="media-resource" class="form-label">Медиаресурс <span class="text-danger">*</span></label>\n
                                      <select id="media-resource" name="media_plan[media_resource]" class="form-select" required data-media-plan-field="mediaResource">\n
                                          <option value="">Выберите медиаресурс</option>\n
                                          {% for mr in mediaResources|default([]) %}\n
                                              <option value="{{ mr.id }}" {{ mediaPlan.mediaResource and mediaPlan.mediaResource.id == mr.id ? 'selected' }}>\n
                                                  {{ mr.name }}\n
                                              </option>\n
                                          {% endfor %}\n
                                      </select>\n
                                      <div class="form-text">На каком медиаресурсе будет размещение</div>\n
                                  </div>\n
      \n
                                  <div class="col-12">\n
                                      <label for="service" class="form-label">Услуга <span class="text-danger">*</span></label>\n
                                      <select id="service" name="media_plan[service]" class="form-select" required data-media-plan-field="service">\n
                                          <option value="">Выберите услугу</option>\n
                                          {% for service in services|default([]) %}\n
                                              <option value="{{ service.id }}" {{ mediaPlan.service and mediaPlan.service.id == service.id ? 'selected' }}>\n
                                                  {{ service.name }}\n
                                              </option>\n
                                          {% endfor %}\n
                                      </select>\n
                                      <div class="form-text">Тип услуги размещения</div>\n
                                  </div>\n
      \n
                                  <div class="col-12">\n
                                      <label for="pricelist-item" class="form-label">Позиция прайса <span class="text-danger">*</span></label>\n
                                      <select id="pricelist-item" name="media_plan[pricelist_item]" class="form-select" required data-media-plan-field="pricelistItem">\n
                                          <option value="">Выберите позицию прайса</option>\n
                                          {% for item in pricelistItems|default([]) %}\n
                                              <option value="{{ item.id }}" {{ mediaPlan.pricelistItem and mediaPlan.pricelistItem.id == item.id ? 'selected' }}>\n
                                                  {{ item.label }}\n
                                              </option>\n
                                          {% endfor %}\n
                                      </select>\n
                                      <div class="form-text">Тарифные условия и правила ценообразования</div>\n
                                  </div>\n
      \n
                                  <div class="col-12">\n
                                      <label for="adjustment-key" class="form-label">Скидка / наценка</label>\n
                                      <select id="adjustment-key" name="media_plan[adjustment_key]" class="form-select">\n
                                          <option value="">Не применять</option>\n
                                          {% for rule in adjustmentRules|default([]) %}\n
                                              <option value="{{ rule.id }}" {{ mediaPlan.adjustmentKey and mediaPlan.adjustmentKey == rule.id|string ? 'selected' }}>\n
                                                  {{ rule.note ?: (rule.adjustmentKind == 'discount' ? 'Скидка' : 'Наценка') }} \n
                                                  ({{ rule.percentage > 0 ? '+' : '' }}{{ rule.percentage }}%)\n
                                              </option>\n
                                          {% endfor %}\n
                                      </select>\n
                                      <div class="form-text">Применить правило скидки или наценки к спотам медиаплана</div>\n
                                  </div>\n
      \n
                                  <div class="col-md-6">\n
                                      <label for="period-from" class="form-label">Период размещения с <span class="text-danger">*</span></label>\n
                                      <input type="date" id="period-from" name="media_plan[period_from]" class="form-control" required \n
                                             value="{{ mediaPlan.periodFrom ? mediaPlan.periodFrom|date('Y-m-d') : '' }}">\n
                                      <div class="form-text">Начало периода размещения</div>\n
                                  </div>\n
      \n
                                  <div class="col-md-6">\n
                                      <label for="period-to" class="form-label">Период размещения до <span class="text-danger">*</span></label>\n
                                      <input type="date" id="period-to" name="media_plan[period_to]" class="form-control" required \n
                                             value="{{ mediaPlan.periodTo ? mediaPlan.periodTo|date('Y-m-d') : '' }}">\n
                                      <div class="form-text">Конец периода размещения</div>\n
                                  </div>\n
                              </div>\n
                          </div>\n
                      </div>\n
                  </div>\n
      \n
                  <div class="col-lg-4">\n
                      <div class="card h-100">\n
                          <div class="card-header">Дополнительные данные</div>\n
                          <div class="card-body">\n
                              <dl class="mb-0">\n
                                  <dt>Заказ</dt>\n
                                  <dd>\n
                                      <a href="{{ path('app_order_show', {id: mediaPlan.order.id}) }}">{{ mediaPlan.order.number }}</a>\n
                                  </dd>\n
                                  \n
                                  <dt>Клиент</dt>\n
                                  <dd>\n
                                      <a href="{{ path('app_client_show', {id: mediaPlan.client.id}) }}">{{ mediaPlan.client.name }}</a>\n
                                  </dd>\n
                                  \n
                                  <dt>Договор</dt>\n
                                  <dd>\n
                                      <a href="{{ path('app_contract_show', {id: mediaPlan.order.contract.id}) }}">\n
                                          {{ mediaPlan.order.contract.number ?: 'Оферта' }}\n
                                      </a>\n
                                  </dd>\n
                                  \n
                                  {% if not isNew %}\n
                                      <dt>Статус</dt>\n
                                      <dd>\n
                                          <span class="badge {{ {'draft': 'bg-secondary', 'approved': 'bg-success'}[mediaPlan.status] }}">\n
                                              {{ constant('STATUS_LABELS', mediaPlan)[mediaPlan.status] }}\n
                                          </span>\n
                                      </dd>\n
                                  {% endif %}\n
                              </dl>\n
                              \n
                              {% if not isNew %}\n
                                  <hr>\n
                                  <p class="small text-muted mb-0">\n
                                      Создан: {{ mediaPlan.createdAt|date('d.m.Y H:i') }}\n
                                      {% if mediaPlan.createdBy %}\n
                                          <br>{{ mediaPlan.createdBy.shortName }}\n
                                      {% endif %}\n
                                  </p>\n
                              {% endif %}\n
                          </div>\n
                      </div>\n
                  </div>\n
              </div>\n
      \n
              <div class="d-flex gap-2 mt-4">\n
                  <button class="btn btn-primary" data-form-submit-target="button" type="submit">\n
                      <i class="bi {{ isNew ? 'bi-plus-circle' : 'bi-check-lg' }}"></i> \n
                      {{ isNew ? 'Создать медиаплан' : 'Сохранить изменения' }}\n
                  </button>\n
                  <a class="btn btn-outline-secondary" href="{{ isNew ? path('app_order_show', {id: mediaPlan.order.id}) : path('app_media_plan_show', {id: mediaPlan.id}) }}">\n
                      Отмена\n
                  </a>\n
              </div>\n
          </form>\n
      \n
          {% if isNew %}\n
              <script>\n
                  (() => {\n
                      // Динамическая загрузка данных будет реализована на следующих этапах\n
                      // Пока показываем все доступные опции\n
                  })();\n
              </script>\n
          {% endif %}\n
      {% endblock %}\n
      """
    -name: "media_plans/form.html.twig"
    -path: "/var/www/varnarad/data/www/dev.varnaradio.ru/templates/media_plans/form.html.twig"
  }
  -phpFile: "/var/www/varnarad/data/www/dev.varnaradio.ru/vendor/twig/twig/src/Parser.php"
  -phpLine: 527
}
  1. <div class="col-12">
  2. <label for="adjustment-key" class="form-label">Скидка / наценка</label>
  3. <select id="adjustment-key" name="media_plan[adjustment_key]" class="form-select">
  4. <option value="">Не применять</option>
  5. {% for rule in adjustmentRules|default([]) %}
  6. <option value="{{ rule.id }}" {{ mediaPlan.adjustmentKey and mediaPlan.adjustmentKey == rule.id|string ? 'selected' }}>
  7. {{ rule.note ?: (rule.adjustmentKind == 'discount' ? 'Скидка' : 'Наценка') }}
  8. ({{ rule.percentage > 0 ? '+' : '' }}{{ rule.percentage }}%)
  9. </option>
  10. {% endfor %}
  11. </select>
  1. $arguments = new EmptyNode();
  2. } else {
  3. $arguments = $this->parseNamedArguments($parser);
  4. }
  5. $filter = $parser->getFilter($token->getValue(), $line);
  6. $ready = true;
  7. if (!isset($this->readyNodes[$class = $filter->getNodeClass()])) {
  8. $this->readyNodes[$class] = (bool) (new \ReflectionClass($class))->getConstructor()->getAttributes(FirstClassTwigCallableReady::class);
  9. }
in vendor/twig/twig/src/Parser.php -> parse (line 428)
  1. }
  2. $token = $this->getCurrentToken();
  3. while ($token->test(Token::OPERATOR_TYPE) && ($ep = $this->parsers->getByName(InfixExpressionParserInterface::class, $token->getValue())) && $ep->getPrecedence() >= $precedence) {
  4. $this->getStream()->next();
  5. $expr = $ep->parse($this, $expr, $token);
  6. $this->checkPrecedenceDeprecations($ep, $expr);
  7. $token = $this->getCurrentToken();
  8. }
  9. return $expr;
  1. /**
  2. * @return AbstractBinary
  3. */
  4. public function parse(Parser $parser, AbstractExpression $left, Token $token): AbstractExpression
  5. {
  6. $right = $parser->parseExpression(InfixAssociativity::Left === $this->getAssociativity() ? $this->getPrecedence() + 1 : $this->getPrecedence());
  7. return new ($this->nodeClass)($left, $right, $token->getLine());
  8. }
  9. public function getAssociativity(): InfixAssociativity
in vendor/twig/twig/src/Parser.php -> parse (line 428)
  1. }
  2. $token = $this->getCurrentToken();
  3. while ($token->test(Token::OPERATOR_TYPE) && ($ep = $this->parsers->getByName(InfixExpressionParserInterface::class, $token->getValue())) && $ep->getPrecedence() >= $precedence) {
  4. $this->getStream()->next();
  5. $expr = $ep->parse($this, $expr, $token);
  6. $this->checkPrecedenceDeprecations($ep, $expr);
  7. $token = $this->getCurrentToken();
  8. }
  9. return $expr;
  1. /**
  2. * @return AbstractBinary
  3. */
  4. public function parse(Parser $parser, AbstractExpression $left, Token $token): AbstractExpression
  5. {
  6. $right = $parser->parseExpression(InfixAssociativity::Left === $this->getAssociativity() ? $this->getPrecedence() + 1 : $this->getPrecedence());
  7. return new ($this->nodeClass)($left, $right, $token->getLine());
  8. }
  9. public function getAssociativity(): InfixAssociativity
in vendor/twig/twig/src/Parser.php -> parse (line 428)
  1. }
  2. $token = $this->getCurrentToken();
  3. while ($token->test(Token::OPERATOR_TYPE) && ($ep = $this->parsers->getByName(InfixExpressionParserInterface::class, $token->getValue())) && $ep->getPrecedence() >= $precedence) {
  4. $this->getStream()->next();
  5. $expr = $ep->parse($this, $expr, $token);
  6. $this->checkPrecedenceDeprecations($ep, $expr);
  7. $token = $this->getCurrentToken();
  8. }
  9. return $expr;
in vendor/twig/twig/src/Parser.php -> parseExpression (line 189)
  1. $rv[] = new TextNode($token->getValue(), $token->getLine());
  2. break;
  3. case $this->stream->getCurrent()->test(Token::VAR_START_TYPE):
  4. $token = $this->stream->next();
  5. $expr = $this->parseExpression();
  6. $this->stream->expect(Token::VAR_END_TYPE);
  7. $node = new PrintNode($expr, $token->getLine());
  8. NodeDocumentation::add($node, $token);
  9. $rv[] = $node;
  10. break;
  1. $targets = $this->parseAssignmentExpression();
  2. $stream->expect(Token::OPERATOR_TYPE, 'in');
  3. $seq = $this->parser->parseExpression();
  4. $stream->expect(Token::BLOCK_END_TYPE);
  5. $body = $this->parser->subparse([$this, 'decideForFork']);
  6. if ('else' == $stream->next()->getValue()) {
  7. $elseLineno = $stream->getCurrent()->getLine();
  8. $stream->expect(Token::BLOCK_END_TYPE);
  9. $else = new ForElseNode($this->parser->subparse([$this, 'decideForEnd'], true), $elseLineno);
  10. } else {
in vendor/twig/twig/src/Parser.php -> parse (line 238)
  1. $subparser->setParser($this);
  2. $documentationTargetIndex = \count($this->documentationTargets);
  3. $this->documentationTargets[] = null;
  4. try {
  5. $node = $subparser->parse($token);
  6. $documentationTarget = $this->documentationTargets[$documentationTargetIndex];
  7. } finally {
  8. array_pop($this->documentationTargets);
  9. }
  10. if (!$node) {
  1. $this->parser->setDocumentationTarget($block);
  2. $this->parser->pushLocalScope();
  3. $this->parser->pushBlockStack($name);
  4. if ($stream->nextIf(Token::BLOCK_END_TYPE)) {
  5. $body = $this->parser->subparse([$this, 'decideBlockEnd'], true);
  6. if ($token = $stream->nextIf(Token::NAME_TYPE)) {
  7. $value = $token->getValue();
  8. if ($value != $name) {
  9. throw new SyntaxError(\sprintf('Expected endblock for block "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getSourceContext());
in vendor/twig/twig/src/Parser.php -> parse (line 238)
  1. $subparser->setParser($this);
  2. $documentationTargetIndex = \count($this->documentationTargets);
  3. $this->documentationTargets[] = null;
  4. try {
  5. $node = $subparser->parse($token);
  6. $documentationTarget = $this->documentationTargets[$documentationTargetIndex];
  7. } finally {
  8. array_pop($this->documentationTargets);
  9. }
  10. if (!$node) {
in vendor/twig/twig/src/Parser.php -> subparse (line 113)
  1. $this->importedSymbols = [[]];
  2. $this->embeddedTemplates = [];
  3. $this->expressionRefs = new \WeakMap();
  4. try {
  5. $body = $this->subparse($test, $dropNeedle);
  6. } catch (SyntaxError $e) {
  7. if (!$e->getSourceContext()) {
  8. $e->setSourceContext($this->stream->getSourceContext());
  9. }
  1. {
  2. if (null === $this->parser) {
  3. $this->parser = new Parser($this);
  4. }
  5. return $this->parser->parse($stream);
  6. }
  7. /**
  8. * @return void
  9. */
  1. * @throws SyntaxError When there was an error during tokenizing, parsing or compiling
  2. */
  3. public function compileSource(Source $source): string
  4. {
  5. try {
  6. return $this->compile($this->parse($this->tokenize($source)));
  7. } catch (Error $e) {
  8. $e->setSourceContext($source);
  9. throw $e;
  10. } catch (\Exception $e) {
  11. throw new SyntaxError(\sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e);
in vendor/twig/twig/src/Environment.php -> compileSource (line 422)
  1. $this->cache->load($key);
  2. }
  3. if (!class_exists($cls, false)) {
  4. $source = $this->getLoader()->getSourceContext($name);
  5. $content = $this->compileSource($source);
  6. if (!isset($this->hotCache[$name])) {
  7. $this->cache->write($key, $content);
  8. $this->cache->load($key);
  9. }
in vendor/twig/twig/src/Environment.php -> loadTemplate (line 384)
  1. return $name;
  2. }
  3. $cls = $this->getTemplateClass($name);
  4. return $this->loadedWrappers[$cls] ??= new TemplateWrapper($this, $this->loadTemplate($cls, $name));
  5. }
  6. /**
  7. * Loads a template internal representation.
  8. *
  1. * @throws SyntaxError When an error occurred during compilation
  2. * @throws RuntimeError When an error occurred during rendering
  3. */
  4. public function render($name, array $context = []): string
  5. {
  6. return $this->load($name)->render($context);
  7. }
  8. /**
  9. * Displays a template.
  10. *
  1. if (null !== $block) {
  2. return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);
  3. }
  4. return $this->container->get('twig')->render($view, $parameters);
  5. }
  6. private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  7. {
  8. $content = $this->doRenderView($view, $block, $parameters, $method);
  1. return $this->container->get('twig')->render($view, $parameters);
  2. }
  3. private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response
  4. {
  5. $content = $this->doRenderView($view, $block, $parameters, $method);
  6. $response ??= new Response();
  7. if (200 === $response->getStatusCode()) {
  8. foreach ($parameters as $v) {
  9. if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
  1. * If an invalid form is found in the list of parameters, a 422 status code is returned.
  2. * Forms found in parameters are auto-cast to form views.
  3. */
  4. protected function render(string $view, array $parameters = [], ?Response $response = null): Response
  5. {
  6. return $this->doRender($view, null, $parameters, $response, __FUNCTION__);
  7. }
  8. /**
  9. * Renders a block in a view.
  10. *
AbstractController->render() in src/Orders/Controller/MediaPlanController.php (line 447)
  1. if ($adjustmentRuleSet) {
  2. $adjustmentRules = $adjustmentRuleSet->getRows()->toArray();
  3. }
  4. }
  5. return $this->render('media_plans/form.html.twig', [
  6. 'mediaPlan' => $mediaPlan,
  7. 'isNew' => $new,
  8. 'mediaResources' => $mediaResources,
  9. 'services' => $services,
  10. 'pricelistItems' => $pricelistItems,
MediaPlanController->editForm() in src/Orders/Controller/MediaPlanController.php (line 86)
  1. if (!$mediaPlan->isEditable()) {
  2. $this->addFlash('warning', 'Медиаплан в статусе "' . MediaPlan::STATUS_LABELS[$mediaPlan->getStatus()] . '" недоступен для редактирования');
  3. return $this->redirectToRoute('app_media_plan_show', ['id' => $mediaPlan->getId()]);
  4. }
  5. return $this->editForm($request, $mediaPlan, false);
  6. }
  7. #[Route('/{id}/approve', name: 'app_media_plan_approve', methods: ['POST'], requirements: ['id' => '\d+'])]
  8. #[IsGranted('MEDIA_PLAN_APPROVE')]
  9. public function approve(Request $request, MediaPlan $mediaPlan): Response
  1. $this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
  2. $controller = $event->getController();
  3. $arguments = $event->getArguments();
  4. // call controller
  5. $response = $controller(...$arguments);
  6. // view
  7. if (!$response instanceof Response) {
  8. $event = new ViewEvent($this, $request, $type, $response, $event);
  9. $this->dispatcher->dispatch($event, KernelEvents::VIEW);
  1. $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  2. $this->requestStack->push($request);
  3. $response = null;
  4. try {
  5. return $response = $this->handleRaw($request, $type);
  6. } catch (\Throwable $e) {
  7. if ($e instanceof \Error && !$this->handleAllThrowables) {
  8. throw $e;
  9. }
  1. if (!$this->handlingHttpCache) {
  2. $this->resetServices = true;
  3. }
  4. try {
  5. return $this->getHttpKernel()->handle($request, $type, $catch);
  6. } finally {
  7. --$this->requestStackSize;
  8. }
  9. }
  1. ) {
  2. }
  3. public function run(): int
  4. {
  5. $response = $this->kernel->handle($this->request);
  6. $response->send(false);
  7. if (\function_exists('fastcgi_finish_request') && !$this->debug) {
  8. fastcgi_finish_request();
in vendor/autoload_runtime.php -> run (line 32)
  1. $app = $app(...$args);
  2. exit(
  3. $runtime
  4. ->getRunner($app)
  5. ->run()
  6. );
require_once('/var/www/varnarad/data/www/dev.varnaradio.ru/vendor/autoload_runtime.php') in public/index.php (line 5)
  1. <?php
  2. use App\Kernel;
  3. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  4. return static function (array $context) {
  5. return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  6. };

Logs

Level Channel Message
INFO 10:59:30 request Matched route "_profiler".
{
    "route": "_profiler",
    "route_parameters": {
        "_route": "_profiler",
        "_controller": "web_profiler.controller.profiler::panelAction",
        "token": "latest"
    },
    "request_uri": "https://lk2.varnaradio.ru/_profiler/latest?method=GET&type=request",
    "method": "GET"
}

Stack Trace

SyntaxError
Twig\Error\SyntaxError:
Unknown "string" filter in "media_plans/form.html.twig" at line 65.

  at templates/media_plans/form.html.twig:65
  at Twig\Parser->getFilter()
     (vendor/twig/twig/src/ExpressionParser/Infix/FilterExpressionParser.php:47)
  at Twig\ExpressionParser\Infix\FilterExpressionParser->parse()
     (vendor/twig/twig/src/Parser.php:428)
  at Twig\Parser->parseExpression()
     (vendor/twig/twig/src/ExpressionParser/Infix/BinaryOperatorExpressionParser.php:46)
  at Twig\ExpressionParser\Infix\BinaryOperatorExpressionParser->parse()
     (vendor/twig/twig/src/Parser.php:428)
  at Twig\Parser->parseExpression()
     (vendor/twig/twig/src/ExpressionParser/Infix/BinaryOperatorExpressionParser.php:46)
  at Twig\ExpressionParser\Infix\BinaryOperatorExpressionParser->parse()
     (vendor/twig/twig/src/Parser.php:428)
  at Twig\Parser->parseExpression()
     (vendor/twig/twig/src/Parser.php:189)
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/TokenParser/ForTokenParser.php:43)
  at Twig\TokenParser\ForTokenParser->parse()
     (vendor/twig/twig/src/Parser.php:238)
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/TokenParser/BlockTokenParser.php:47)
  at Twig\TokenParser\BlockTokenParser->parse()
     (vendor/twig/twig/src/Parser.php:238)
  at Twig\Parser->subparse()
     (vendor/twig/twig/src/Parser.php:113)
  at Twig\Parser->parse()
     (vendor/twig/twig/src/Environment.php:572)
  at Twig\Environment->parse()
     (vendor/twig/twig/src/Environment.php:603)
  at Twig\Environment->compileSource()
     (vendor/twig/twig/src/Environment.php:422)
  at Twig\Environment->loadTemplate()
     (vendor/twig/twig/src/Environment.php:384)
  at Twig\Environment->load()
     (vendor/twig/twig/src/Environment.php:343)
  at Twig\Environment->render()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:467)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:472)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
     (vendor/symfony/framework-bundle/Controller/AbstractController.php:284)
  at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
     (src/Orders/Controller/MediaPlanController.php:447)
  at App\Orders\Controller\MediaPlanController->editForm()
     (src/Orders/Controller/MediaPlanController.php:86)
  at App\Orders\Controller\MediaPlanController->edit()
     (vendor/symfony/http-kernel/HttpKernel.php:185)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
     (vendor/symfony/http-kernel/HttpKernel.php:76)
  at Symfony\Component\HttpKernel\HttpKernel->handle()
     (vendor/symfony/http-kernel/Kernel.php:193)
  at Symfony\Component\HttpKernel\Kernel->handle()
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:34)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:32)
  at require_once('/var/www/varnarad/data/www/dev.varnaradio.ru/vendor/autoload_runtime.php')
     (public/index.php:5)