作者:亚艾元技术部
在帮助客户构建网站的时候,想要实现一个页面,不同角色开到的内容是不一样的,我们使用前文中所属的办法,通过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'); }
经过实际测试,上述代码片段,很好的解决了这个问题。