Drupal 8 первый MVC

06.11.2019 04:55:24 Просмотров 72 Источник

Я пытаюсь добраться до своего первого контроллера и посмотреть на пользовательский модуль с помощью drupal 8. Я новичок и это мой первый модуль.

мой_модуль.информация.в YAML расположенном в /modules/таможня/мой_модуль

name: My Own Custom Module 
description: A silly example module
type: module
core: 8.x

С этим я смог перейти к своему расширению, чтобы активировать модуль.

Итак, модуль установлен.

Теперь, я хочу попробовать ударить мой первый шаблон ветки

Для того чтобы это сделать

my_module.маршрутизации.yaml находится в /modules / custom/my_module

my_module.article_list:
  path: 'my_module/articles'
  defaults:
    _controller: '\Drupal\my_module\Controller\ArticleController::page'
    _title: "Title routing"
  requirements:
    _permissions: 'access content'

Мой контроллер находится в /modules / custom/my_module / src / Controller

<?php 
    namespace Drupal\my_module\Controller;

    class ArticleController{

        public function page(){

            $items = array(
                array('name' => 'Article one'),
                array('name' => 'Article 2')
                array('name' => 'Article 3')
            );

            return array('#theme' => 'article_list',
            '#items' => $items,
            '#title' => 'Liste d\'article');
        }
    }

?>

статья-список.формат html.веточка находится в /modules / custom/my_module / src / templates

<h4>{{ title }}</h4>

<ul>
{% for article in items %}
    <li>{{article.title}}</li>
{% endfor %}
</ul>

my_module.модуль, расположенный в /modules / custom/my_module

<?php

function my_module_theme($existing, $type, $theme, $path){
return array('article_list' => array('variables' => array('items' => array(), 'title' => '')));
}

?>

Но потом, когда я пытаюсь добраться до своего шаблона, я попадаю на страницу, которую не нашел

http://localhost:9000/drupal-8.7.8/index.php/my_module/articles

Спасибо за вашу помощь.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/58731789/drupal-8-first-mvc#comment103755567_58731789
Вы очистили кэш? Как правило, если вы добавляете новый маршрут, кэш должен быть очищен

Ответы - Drupal 8 первый MVC / Drupal 8 first MVC

Является ответом!
MilanG

06.11.2019 05:43:07

Это не my_module.routings.yaml

но my_module.routing.yml

Также я думаю, что параметр path должен начинаться со знака косой черты:

path: '/my_module/articles'
https://stackoverflow.com/questions/58731789/drupal-8-first-mvc/58732623#comment103755985_58732623
Черт возьми, вы правы, у меня также была другая ошибка (я пропустил кома в контроллере). Похоже, что это работает сейчас (ну, у меня есть доступ запрещен, пытаясь получить доступ к странице даже с учетной записью администратора, поэтому я думаю, что я что-то пропустил, но по крайней мере маршрутизация, кажется, работает ! Спасибо.
Закрыть X