#symfony-1.4
#symfony-1.4
Вопрос:
Мне нужно подсчитать все записи в одной таблице, так что..В моем действии
public function executeTesting(sfWebrequest $r)
{
$this->applicants = Doctrine_core::getTable('Applicants')->count();
$this->setLayout(false);
}
и я могу отобразить записи в шаблоне
testingSucess.php
<?php echo $applicants ?>//returns number of records example 890
Но я хочу, чтобы это отображалось в других шаблонах.Допустим, я хочу «встроить» в другой шаблон (failureSuccess.php ).Есть предложения?
Ответ №1:
Вы можете рассмотреть возможность использования вызова AJAX и внести небольшие изменения в свой код, чтобы избежать использования шаблона.
Итак, давайте изменим ваше действие на это:
class miscActions extends sfActions
{
public function executeTotal(sfWebRequest $request)
{
$total = Doctrine::getTable('Utenti')->findAll()->count();
return $this->renderText(json_encode(array('total' => $total)));
}
}
И теперь вы можете получить это значение в шаблоне, например, с помощью jQuery:
<script type="text/javascript">
$.ajax({
url: '<?php echo url_for("misc/total") ?>',
dataType: 'json',
success: function(data){
console.log(JSON.stringify(data));
console.log("Total: " data.total);
// And if you want to update a div content
$("#responsecontainer").html(data.total);
}
});
</script>
Комментарии:
1. можете ли вы показать полный пример кода? Я мало разбираюсь в json и jQuery. Мой модуль — «разное», а действие — «общее». Я попробовал url: ‘<?php echo url_for(‘misc / total’)?>, тип: «json», успех: функция (данные){ // внутри data.total у вас есть значение $(«#responsecontainer»).data(total); } и в моемшаблоны <идентификатор div =»responsecontaner»><div>
2. @ilSalvo ты такой милый. Продолжайте в том же духе
Ответ №2:
Понял..Просто удалите действие и создайте вместо него помощника, поэтому в моем lib/helper/TotalHelper.php
<?php
function getTotal() {
$applicants = Doctrine_core::getTable('Applicants')->count();
return $applicants;
}
и в шаблоне (failureSuccess.php )
<?php use_helper('Total') ?>
<?php echo getTotal() ?>
Так удобно..
Комментарии:
1. Вспомогательные функции не предназначены для выполнения каких-либо запросов к БД. Если вам нужна часть в разных шаблонах, вы должны либо включить ее во все свои действия, либо создать компонент, который сделает запрос к БД и отобразит его должным образом.