我有一個聰明的模板,一直工作適合我一段時間,但由於原因我不明白其中一個變量,我「分配」的模板是$ activity_date和當我發送時間信息與我的日期信息,它有一些令人驚訝的效果(即,「2012年12月27日」通過時,它工作,但在「2012-12-27 00:00:00」在通過Smarty模板條件停止工作
這可能使一些更有意義,如果這些問題實際上都涉及到某種與此變量模板相互作用的,但它並不顯得相反,最終的效果是,條件語句,如:。
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;
}
我對Smarty不熟悉,但會'if(isset($ span))'或'if(!empty($ span))'工作嗎?只是在黑暗中拍攝... –
是的,我曾試圖做到這一點(又名,PHP方式),但在我之前見過的Smarty示例中,總是建議按照我在代碼中的方式執行此操作。也就是說,還是值得一試,讓我們看看它是如何發展的。 – ken
它確實似乎改善了這種情況。我要去睡覺,看看早晨是否變得更清晰。 – ken