【问题标题】:to solve Fatal error: Call to a member function id() on a non-object in drupal 8解决致命错误:在 drupal 8 中调用非对象上的成员函数 id()
【发布时间】:2016-12-10 02:16:51
【问题描述】:

我在drupal 8 中创建了一个自定义主题并根据其要求加载库。但是当搜索按钮单击出现错误时,搜索页面出现问题“致命错误:在非对象中调用成员函数 id()” 我用谷歌搜索没有找到任何相关的解决方案。如果有人知道告诉我如何解决这个问题。

我的 .theme 文件

function Endymion_preprocess_page(&$variables) 
{
    if($variables['is_front']) {

    } else {
        $node = \Drupal::routeMatch()->getParameter('node');
        echo $node->id();

        if($node->id()==35 and $node->getType()=='page') {
            $variables['#attached']['library'][] = 'Endymion/MortgageRentvsBuy';
        } else {
            $variables['#attached']['library'][] = 'Endymion/MortgageMax'; 
        }

        function Endymion_form_search_block_form_alter(&$form, &$form_state, $form_id) 
        {      
            $form['#prefix'] = '<div class="container">';
            $form['#suffix'] = '</div>';  
        }

【问题讨论】:

  • 看起来你的路由匹配器在这里没有返回节点;您可以为 case 节点为 null(或不是 Node 对象)添加条件,也可以从此处开始调试。
  • 谢谢....jlapoutre。当页面搜索按钮单击此处搜索注释首页转到其他部分并且条件检查执行错误时,会发生此错误。搜索结果页是节点吗?

标签: drupal-8


【解决方案1】:

$node-&gt;id() 以及与其相关的所有内容包装起来,如下所示。

if ($node instanceof NodeInterface) {
  $example = $node->id();

  ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2012-05-30
    • 2016-08-30
    • 2015-02-06
    • 2012-05-14
    • 2013-11-19
    相关资源
    最近更新 更多