我有一个聪明的模板,一段时间以来一直很好用,但由于我不太了解我“分配”给模板的变量之一是 $activity_date 以及当我发送带有日期信息的时间信息时它有一些令人惊讶的效果(也就是说,它在“2012-12-27”被传入时有效,但在“2012-12-27 00:00:00”被传入时以一种奇怪的方式倒下。
如果问题实际上与与此变量的某种模板交互有关,但似乎并非如此,这可能会更有意义。相反,最终效果是条件语句,如:
class="ajax-selector {if ($span)}span{$span}{/if} left"
产生以下错误:
PHP Notice: Undefined index: span in /[PATH]/templates/compiled/96681eebf17717b8605c8deffb547d7e89c1ace6.file.select2-ajax.tmpl.php on line 35
对我来说,这很矛盾。代码说“测试 $span 的存在”,然后只有在它确实存在时才采取行动。错误消息抱怨未定义的索引,这是条件测试的意图。
正如我之前所说,所有这些类型的条件语句过去都可以完全按照您的预期工作,但是它们都开始失败,唯一的区别似乎是“activity_date”是否以时间级精度返回或只是日期级别的精度。
如果有帮助,这里是设置模板的代码:
public function handler ( $request ) {
$response = new stdClass();
$response->action = $request['action'];
$response->post_type = LG_TAX_Action()->post_type($response->action);
$response->meta = LG_TAX_Action()->meta ( $response->action );
$template = FE_Template::init();
$meta = new LG_Meta();
$template->assign ( 'form' , $response );
if ( isset ($request['activity_date']) ) {
$template->assign ( 'activity_date' , $request['activity_date'] );
}
$named_days = new stdClass();
$named_days->today = new DateTime('today');
$named_days->today = $named_days->today->format('Y-m-d');
$named_days->yesterday = new DateTime('yesterday');
$named_days->yesterday = $named_days->yesterday->format('Y-m-d');
$template->assign ( 'named_days' , $named_days );
$template->assign ( 'meta' , $meta ); // provides the "template_exists()" method
$response->template = $template->fetch( 'activity_forms/master.tmpl' );
return $response;
}