0
我正在處理管理生成器模塊。我想隱藏項目列表,直到用戶使用過濾器。所以我想檢查一下,如果過濾器表單已經發送。如何檢查過濾器是否已應用於模板中?
是否有任何變化我可以在indexSuccess.php
模板中檢查此問題?
我正在處理管理生成器模塊。我想隱藏項目列表,直到用戶使用過濾器。所以我想檢查一下,如果過濾器表單已經發送。如何檢查過濾器是否已應用於模板中?
是否有任何變化我可以在indexSuccess.php
模板中檢查此問題?
過濾器在用戶提交時存儲在會話中。
因此,在您的模板中,您可以通過調用會話來訪問已定義的過濾器。如果您沒有默認篩選器,它將返回一個空陣列(如果使用輸出保護,則可能爲sfOutputEscaperArrayDecorator
)。
如果模塊名稱是car
例如,您可以使用讓您的模板中的過濾器:
$filters = $sf_user->getAttribute('car.filters', null, 'admin_module');
如果您使用的輸出保護,你可以這樣做:
$filters = sfOutputEscaper::unescape($sf_user->getAttribute('car.filters', null, 'admin_module'));
如果你這樣做沒有過濾器,你會得到像這樣的var_dump
(第一種解決方案):
object(sfOutputEscaperArrayDecorator)[181]
private 'count' => int 0
protected 'value' =>
array
empty
protected 'escapingMethod' => string 'esc_specialchars' (length=16)
,並與第二:
array
empty
例如,如果你有一些過濾器定義,您將獲得:
array
'model' =>
array
'text' => string 'test' (length=4)
'updated_at' =>
array
'from' => null
'to' => null
'created_at' =>
array
'from' => null
'to' => null