Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPTAL-在使用宏时尝试获取非对象的属性_Php_Phptal - Fatal编程技术网

PHPTAL-在使用宏时尝试获取非对象的属性

PHPTAL-在使用宏时尝试获取非对象的属性,php,phptal,Php,Phptal,我使用的是PHPTAL 1.2.2 模板页面为Template.tpl <form> <div tal:repeat="field fields"> <tal:block tal:define="name repeat/field/key" metal:use-macro="${field/type}" /> </div> </form> <tal:block me

我使用的是PHPTAL 1.2.2 模板页面为Template.tpl

<form>
        <div tal:repeat="field fields">
                <tal:block tal:define="name repeat/field/key" metal:use-macro="${field/type}" />
        </div>
</form>

<tal:block metal:define-macro="text">
        <label>${field/label}</label><input name="${name}" type="text" value="${field/value}" />
</tal:block>

<tal:block metal:define-macro="select">
        <label>${field/label}</label><select name="${name}">
                <tal:block tal:repeat="value field/valuelist">
                        <option tal:condition="php:field.value != value" value="${value}">${value}</option>

                </tal:block>
        </select>
</tal:block>
我的php页面是

<?php
  require_once 'PHPTAL.php';

  $fields = array(
    'name'   => array('label'=>'Name','type'=>'text','value'=>'Test User'),
    'user'   => array('label'=>'Age','type'=>'select','valuelist'=>array(1,2,3),'value'=>2) ,

    );
   $t = new PHPTAL('tempalte.tpl');
   $t->fields = $fields;
 try {
        echo $t->execute();
    }
    catch (Exception $e){
        echo $e;
    }

?>
我在ie中遇到一个错误,因为我试图在第24行的C:\Windows\Temp\tpl_4d6be820_formonline1_uuhafmcyjtsql6rgutrjxcha.php中获取非对象的属性


但在firefox和chrome中,它工作得很好,但我查看了源代码,其中有很多html代码,而不是那个标记。

这种PHP错误只发生在PHP:前缀表达式中,所以可能是关于PHP:field.value的。查看字段是否为对象。如果是数组,那么需要php:field['value']。如果可以为NULL,那么您需要检查它。

这种PHP错误只发生在PHP:prefixed表达式中,所以可能是关于PHP:field.value的。查看字段是否为对象。如果是数组,那么需要php:field['value']。如果它可以为NULL,那么您需要检查它。

当我将字符串连接到echo语句时,这种情况也发生在我身上。变量已赋值

   if($des != NULL)
            echo '<p><a href="javascript:rightgroupnav()">'.$des->name.'</a></p>';
这一行适用于Chrome和Firefox。但不是Internet Explorer。我也试着用这种方式测试它

<p><?=$des->name?></p>

这很有效,我希望你能发现它对你有帮助。有人知道为什么他们似乎以不同的方式解析数据吗?

当我将字符串连接到echo语句时,这种情况也发生在我身上。变量已赋值

   if($des != NULL)
            echo '<p><a href="javascript:rightgroupnav()">'.$des->name.'</a></p>';
这一行适用于Chrome和Firefox。但不是Internet Explorer。我也试着用这种方式测试它

<p><?=$des->name?></p>

这很有效,我希望你能发现它对你有帮助。有人知道为什么他们似乎以不同的方式解析数据吗?

尝试强制tal模板不缓存,看看它在该点是否有效。尝试强制tal模板不缓存,看看它在该点是否有效。