[英]Drupal 8 module routing page not found?
我有一個簡單的問題,我希望 Drupal 路由此頁面,但不斷收到此錯誤:
"The website encountered an unexpected error. Please try again later."
drupal 錯誤日志顯示:
"InvalidArgumentException: Class "\Drupal\dblogin\Controller\DbloginController::reddb" does not exist. in Drupal\Core\DependencyInjection\ClassResolver->getInstanceFromDefinition() (line 24 of C:\drupal_sites\drupal-8.6.2\core\lib\Drupal\Core\DependencyInjection\ClassResolver.php)."
我為此實現的代碼是:
dblogin.reddb:
path: /admin/reddb
defaults:
_title: 'DBlogin'
_form: '\Drupal\dblogin\Controller\DbloginController::reddb'
requirements:
_permission: 'access content'
並在 \\src\\Controller\\DbloginController.php
<?php
namespace Drupal\dblogin\Controller;
use Drupal\Core\Controller\ControllerBase;
class dbloginController extends ControllerBase {
public function reddb() {
$build = [
'#markup' => $this->t('DB Login'),
];
return $build;
}
/**
* replacement process callbacks.
*/
}
?>
我也試圖讓它返回“你好”,但無濟於事。
<?php
namespace Drupal\dblogin\Controller;
use Drupal\Core\Controller\ControllerBase;
class dbloginController extends ControllerBase {
public function reddb() {
return "hello";
}
/**
* replacement process callbacks.
*/
}
?>
有人可以幫我嗎? 提前致謝!
路由和控制器文件中的類名應該相同。 您應該對代碼進行更改,例如
<?php
namespace Drupal\dblogin\Controller;
use Drupal\Core\Controller\ControllerBase;
class DbloginController extends ControllerBase {
public function reddb() {
return "hello";
}
/**
* replacement process callbacks.
*/
}
?>
在路由中。
requirements:
_permission: 'administer site configuration'
我可以從代碼中看到您的模塊有兩個問題。
1) 在您的路由文件中。 請用以下幾行替換您的代碼。
dblogin.reddb:
path: '/admin/reddb'
defaults:
_title: 'DBlogin'
_form: '\Drupal\dblogin\Controller\DbloginController::reddb'
requirements:
_permission: 'access content'
2)在您的控制器中。 控制器的文件名和類名每次都應該相同。 所以你的控制器代碼是。
<?php
namespace Drupal\dblogin\Controller;
use Drupal\Core\Controller\ControllerBase;
class DbloginController extends ControllerBase {
public function reddb() {
$build = [
'#markup' => $this->t('DB Login'),
];
return $build;
}
/**
* replacement process callbacks.
*/
}
?>
錯誤:
_form: '\Drupal\dblogin\Controller\DbloginController::reddb'
肯定是:
_controller: '\Drupal\dblogin\Controller\DbloginController::reddb'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.