I'm getting this error:
LogicException: The controller must return a response (Object(Drupal\Core\Render\Markup) given). in Symfony\Component\HttpKernel\HttpKernel->handleRaw() (line 157 of C:\xampp\htdocs\drupal-8.1.10\vendor\symfony\http-kernel\HttpKernel.php).
Below is the code that I'm trying to execute:
<?php
/**
* @file
* Contains \Drupal\my_module\Controller\DefaultController.
*/
namespace Drupal\my_module\Controller;
use Drupal\Core\Controller\ControllerBase;
/**
* Default controller for the my_module module.
*/
class DefaultController extends ControllerBase {
public function my_module(\Drupal\user\UserInterface $user = NULL) {
$name = $mail = $roles = $picture = "";
if (!$user->getUsername() && $user->getUsername()) {
$name = $user->getUsername();
}
if (!$user->getEmail() && $user->getEmail())->get('my_module_user_email_display_status')) {
$mail = $user->getEmail();
}
foreach ($user->getRoles() as $value) {
$roles = $value;
}
$user_data = [
'name' => \Drupal\Component\Utility\SafeMarkup::checkPlain($name),
'mail' => \Drupal\Component\Utility\SafeMarkup::checkPlain($mail),
'roles' => \Drupal\Component\Utility\SafeMarkup::checkPlain($roles),
];
$my_module_template_build = array(
'#theme' => 'my_module_template',
'#details' => $user_data,
);
$my_module_template = drupal_render($my_module_template_build);
return $my_module_template;
}
}
\Drupal::service('renderer')->renderRoot()
instead of deprecateddrupal_render()
.