作者:亚艾元技术部
在帮助客户构建网站的时候,想要实现一个页面,不同角色开到的内容是不一样的,我们使用前文中所属的办法,通过controller构建页面。在controller里面编写区块的控制逻辑,下面的代码片段是我们使用的一个例子
use Drupal\user\Entity\User;
//获取到当前用户,明确的加载一下,这样可以使用hasRole
$user = User::load(\Drupal::currentUser()->id());
//如果具有角色,调用对应的区块
if($user->hasRole('editor')){
$block_id = '';
$block = \Drupal::entityTypeManager()->getStorage('block_content')->load($block_id);
$block_render_array = \Drupal::entityTypeManager()
->getViewBuilder('block_content')
->view($block, 'default');
}经过实际测试,上述代码片段,很好的解决了这个问题。

