我试图在用户登录时显示上次访问的字段。为此,我尝试使用User :: getLastLoginTime()。但这会返回一个致命的错误
PHP致命错误:在/var/www/html/core/modules/user/src/Entity/User.php上调用未定义的方法Drupal \ customize_block \ Plugin \ Block \ ContractDetails :: get()第265行
这是我的块,在我的自定义模块中:
/**
* Provides a 'Customized contract' Block
*
* @Block(
* id = "customer_info",
* label = @Translation("Customer and contract info"),
* module = "user",
* context = {
* "current_user" = @ContextDefinition("entity:user", label = @Translation("Current User"))
* }
* )
namespace Drupal\customize_block\Plugin\Block;
use Drupal\Core\Block\BlockBase;
class ContractInfo extends BlockBase {
public function build() {
$output='';
global $base_url;
$current_user = $this->getContext('current_user');
$output.='<div>' . $current_user -> contextData . '</div>';
return array(
'#markup' => $output,
'#cache' => array(
'contexts' => array('url'),
),
);
}
}
我是否正确地称这种方法?
答案 0 :(得分:0)
不,你没有。您需要一些特定用户,例如当前用户或其他一些用户对象。要为当前用户执行此操作,它看起来像这样:
\Drupal::currentUser()->getLastAccessedTime();