Bonjour,

J'ai ce soucis avec mon module créé en Drupal 8 :

Nom : 2020-05-12 14_58_33-Page non trouvée _ WELCOME TO HISTORY OF ROCK.png
Affichages : 273
Taille : 66,5 Ko

J'ai créé un autre module avant et j'avais le même soucis, j'ai donc téléchargé un module tout fait que j'ai modifié avec ce que je voulais faire et j'avais résolu le soucis en supprimant le "/" de la route " path: '/hello/world'", ça à fonctionné. Je fais donc une copie conforme de ce module, pour pouvoir le modifier à nouveau, je voudrais faire un formulaire qui enregistre des informations dans une table et j'ai de nouveau ce soucis de "Page non trouvée".

Voici mon code :

Dans "module/custom/helloworld2"

helloworld2.info.yml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
name: 'Hello World'
type: module
description: 'Hello World Example module'
core_version_requirement: ^8 || ^9
package: 'Custom'
 
# Information added by Drupal.org packaging script on 2019-12-07
version: '8.x-1.3'
project: 'helloworld2'
datestamp: 1575735787
helloworld.module

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
<?php
 
/**
 * @file
 * Contains helloworld.module.
 */
 
use Drupal\Core\Routing\RouteMatchInterface;
 
/**
 * Implements hook_help().
 */
function helloworld_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    // Main module help for the helloworld module.
    case 'help.page.helloworld':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('Hello World example module') . '</p>';
      return $output;
 
    default:
  }
}
 
/**
 * Implements hook_theme().
 */
function helloworld_theme() {
  return [
    'helloworld' => [
      'render element' => 'children',
    ],
  ];
}

helloworld.routing.yml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
helloworld2.default_controller_hello:
  path: 'hello/world'
  defaults:
    _controller: '\Drupal\helloworld2\Controller\DefaultController::hello'
    _title: 'Hello World!'
  requirements:
    _permission: 'access content'

src/Controller/DefaultController.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
<?php
 
namespace Drupal\helloworld2\Controller;
 
use Drupal\Core\Controller\ControllerBase;
 
/**
 * Class DefaultController.
 */
class DefaultController extends ControllerBase {
 
  /**
   * Hello.
   *
   * @return array
   *   Return Hello string.
   */
  public function hello() {
    return [
      '#type' => 'markup',
      '#markup' => $this->t('<h2>Hello World (Example Drupal 8 Controller) code:</h2>')
      . '<code><?php<br>namespace Drupal\helloworld\Controller;<br>'
      . 'use Drupal\Core\Controller\ControllerBase;<br><br>'
      . 'class DefaultController extends ControllerBase {<br>'
      . '&nbsp;&nbsp;public function hello() {<br>'
      . '&nbsp;&nbsp;&nbsp;&nbsp;return [<br>'
      . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\'#type\' => \'markup\',<br>'
      . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\'#markup\' => $this->t(\'Hello World (Example Drupal 8 Controller) code!\')<br>'
      . '&nbsp;&nbsp;&nbsp;&nbsp;];<br>&nbsp;&nbsp;}<br>}</code>',
    ];
  }
 
}
composer.json

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
{
    "name": "helloworld2",
    "type": "drupal-module",
    "description": "Hello World example module",
    "keywords": [
    ],
    "homepage": "https://www.drupal.org/project/helloworld2",
    "minimum-stability": "dev",
    "support": {
        "issues": "https://www.drupal.org/project/issues/helloworld2",
        "source": "http://cgit.drupalcode.org/helloworld2"
    }
}
drupalci.yml

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
build:
  assessment:
    validate_codebase:
      phplint:
      container_composer:
      csslint:
      eslint:
      phpcs:
    testing:
      run_tests.standard:
        types: 'Simpletest,PHPUnit-Unit,PHPUnit-Kernel,PHPUnit-Functional'
        # Test for Drupal 9 compatibility
        suppress-deprecations: false
      run_tests.js:
        concurrency: 1
        types: 'PHPUnit-FunctionalJavascript'
        # Test for Drupal 9 compatibility
        suppress-deprecations: false
      nightwatchjs:
tests/src/Functional/LoadTest.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
<?php
 
namespace Drupal\Tests\helloworld2\Functional;
 
use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;
 
/**
 * Simple test to ensure that main page loads with module enabled.
 *
 * @group helloworld
 */
class LoadTest extends BrowserTestBase {
 
  const TESTING_DEFAULT_THEME = 'classy';
  const CORE_TESTING_DEFAULT_THEME = 'stark';
 
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
 
  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = ['helloworld2'];
 
  /**
   * A user with permission to administer site configuration.
   *
   * @var \Drupal\user\UserInterface
   */
  protected $user;
 
  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
    $this->user = $this->drupalCreateUser(['administer site configuration']);
    $this->drupalLogin($this->user);
  }
 
  /**
   * Tests that the home page loads with a 200 response.
   */
  public function testLoad() {
    $this->drupalGet(Url::fromRoute('<front>'));
    $this->assertSession()->statusCodeEquals(200);
  }
 
}


Pouvez-vous m'aider car je ne comprend pas d'où viens le soucis et je suis bloqué depuis un moment ?

Merci d'avance.