>

내 경우에는 제목을보기 위해 보내는 컨트롤러가 있지만 기사의 제목과 본문을 모두 보내려고합니다. 컨트롤러에서 보내려고했지만 작동하지 않습니다. 나를

컨트롤러 (제목 및 본문)에서 어떻게 보낼 수 있습니까?

here is tmy controller

public function myPage() {
    $data = \Drupal::service('myservice.ran');
    $dataService = $data->getArticles();
    return $this->renderMyPage($dataService);
  }
  function renderMyPage($articleObjects) {
    $articles = [];
    foreach ($articleObjects as $article) {
      $articles[] = [
        '#type' => 'html_tag',
        '#html_tag' => 'h2',
        '#value' => [$article->title->value,$article->body->value],
        '#cache' => [
          'tags' => $article->getCacheTags(),
        ],
      ];
    }
    return $articles;
  }


  • 답변 # 1

    내가 제안하는 것은 컨트롤러 에서이 솔루션을 사용하여 페이지에 대한 사용자 정의 템플릿을 생성하여 컨트롤러에서 데이터를 나뭇 가지 템플릿으로 전달하는 것입니다.

    public function myPage() {
        $data = \Drupal::service('myservice.ran');
        $dataService = $data->getArticles();
        $articles = [];
        foreach ($dataService as $article) {
          $articles[] = [
            'title' => $article->title->value,
            'body' => $article->body->value,
          ];
        }
        $build = [
          '#theme' => 'my_template',
          '#data' => [
            'articles' => $articles,
            'whatelse' => "what esle I want"
          ],
          '#cache' => ['max-age' => 0],
        ];
        $output = \Drupal::service('renderer')->renderRoot($build);
        $response = new Response();
        $response->setContent($output);
        return $response;
      }
    
    

    모든 데이터는 data 사용자 정의 나뭇 가지 템플릿에. (이름을 원하는대로 변경할 수 있습니다).

    사용자 정의 템플리트를 작성할 때 캐시를 지우십시오.

    도우미 기사

관련 자료

  • 이전 drupal - 서비스에서 호출 할 때 데이터가 표시되지 않음
  • 다음 drupal - 뷰 블록에서 총 행 수를 얻는 방법