Hi,
im trying to add a filter to an index.php page of my module "job".
These are my steps:
In the index.php function I have added the line "$this->filtro = new
JobeetJobFormFilter();". This is the final index.php file:
$this->jobeet_job_list = Doctrine::getTable('JobeetJob')
$this->createQuery('a')
$this->execute();
$this->filtro = new JobeetJobFormFilter();
I have also added these lines to the indexSuccess.php template:
<form action="<?php echo url_for('job/filter'); ?>" method="post">
<?php echo $filtro ?>
<p>
<input class="ui-state-default ui-corner-all" type="submit"
value="Filtrar" />
</p>
</form>
And then i have created this method below:
public function executeFilter(sfWebRequest $request)
{
$this->filtro = new JobeetJobFormFilter();
$this->consulta = $this->filtro->buildQuery($request->getParameter
('jobeet_job_filters'));
$this->jobeet_job_list = $this->consulta->execute();
$this->setTemplate('index');
}
When i push filter i get this error message below.
500 | Internal Server Error | Doctrine_Connection_Mysql_Exception
SQLSTATE[HY093]: Invalid parameter number: number of bound variables
does not match number of tokens
stack trace
* at ()
in SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/
lib/vendor/doctrine/Doctrine/Connection.php line 1086 ...
1083.
1084. $name = 'Doctrine_Connection_' . $this-
>driverName . '_Exception';
1085.
1086. $exc = new $name($e->getMessage(), (int) $e-
>getCode());
1087. if ( ! isset($e->errorInfo) || ! is_array($e-
>errorInfo)) {
1088. $e->errorInfo = array(null, null, null,
null);
1089. }
* at Doctrine_Connection->rethrowException(object('PDOException'),
object('Doctrine_Connection_Statement'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/
lib/vendor/doctrine/Doctrine/Connection/Statement.php line 253 ...
250. } catch (Doctrine_Adapter_Exception $e) {
251. }
252.
253. $this->_conn->rethrowException($e, $this);
254.
255. return false;
256. }
* at Doctrine_Connection_Statement->execute(array('%fer%', 'month'
=> '', 'day' => '', 'year' => ''))
in SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/
lib/vendor/doctrine/Doctrine/Connection.php line 1014 ...
1011. try {
1012. if ( ! empty($params)) {
1013. $stmt = $this->prepare($query);
1014. $stmt->execute($params);
1015.
1016. return $stmt;
1017. } else {
* at Doctrine_Connection->execute('SELECT p.id AS p__id,
p.sf_guard_user_id AS p__sf_guard_user_id, p.nombre_apellidos AS
p__nombre_apellidos, p.sexo AS p__sexo, p.fecha_nac AS p__fecha_nac,
p.provincia AS p__provincia, p.localidad AS p__localidad, p.email AS
p__email, p.fotografia AS p__fotografia FROM profile p WHERE
p.nombre_apellidos LIKE ? AND p.fecha_nac >= ? AND p.fecha_nac <= ?',
array('%fer%', 'month' => '', 'day' => '', 'year' => ''))
in SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/
lib/vendor/doctrine/Doctrine/Query/Abstract.php line 992 ...
989. return $this->_conn->exec($query,
$params);
990. }
991.
992. $stmt = $this->_conn->execute($query,
$params);
993. return $stmt;
994. }
995.
* at Doctrine_Query_Abstract->_execute(array('%fer%', 'month' =>
'', 'day' => '', 'year' => ''))
in SF_ROOT_DIR/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/
lib/vendor/doctrine/Doctrine/Query/Abstract.php line 1036 ...
1033. $result = $this-
>_constructQueryFromCache($cached);
1034. }
1035. } else {
1036. $stmt = $this->_execute($params);
1037.
1038. if (is_integer($stmt)) {
1039. $result = $stmt;
* at Doctrine_Query_Abstract->execute()
in SF_ROOT_DIR/apps/frontend/modules/profile/actions/
actions.class.php line 76 ...
73. {
74. $this->filtro = new ProfileFormFilter();
75. $this->consulta = $this->filtro->buildQuery
($request->getParameter('profile_filters'));
76. $this->profile_list = $this->consulta->execute();
77. $this->setTemplate('index');
78. }
79.
* at profileActions->executeFilter(object('sfWebRequest'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/action/sfActions.class.php
line 60 ...
57. }
58.
59. // run action
60. return $this->$actionToRun($request);
61. }
62. }
63.
* at sfActions->execute(object('sfWebRequest'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfExecutionFilter.class.php line 90 ...
87. {
88. // execute the action
89. $actionInstance->preExecute();
90. $viewName = $actionInstance->execute($this-
>context->getRequest());
91. $actionInstance->postExecute();
92.
93. return is_null($viewName) ? sfView::SUCCESS :
$viewName;
* at sfExecutionFilter->executeAction(object('profileActions'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfExecutionFilter.class.php line 76 ...
73. return sfView::SUCCESS;
74. }
75.
76. return $this->executeAction($actionInstance);
77. }
78.
79. /**
* at sfExecutionFilter->handleAction(object('sfFilterChain'),
object('profileActions'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfExecutionFilter.class.php line 42 ...
39. {
40. $timer = sfTimerManager::getTimer(sprintf
('Action "%s/%s"', $actionInstance->getModuleName(), $actionInstance-
>getActionName()));
41.
42. $viewName = $this->handleAction($filterChain,
$actionInstance);
43.
44. $timer->addTime();
45. $timer = sfTimerManager::getTimer(sprintf
('View "%s" for "%s/%s"', $viewName, $actionInstance->getModuleName(),
$actionInstance->getActionName()));
* at sfExecutionFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfFilterChain.class.php line 53 ...
50. }
51.
52. // execute the next filter
53. $this->chain[$this->index]->execute($this);
54. }
55. }
56.
* at sfFilterChain->execute()
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfCommonFilter.class.php line 29 ...
26. public function execute($filterChain)
27. {
28. // execute next filter
29. $filterChain->execute();
30.
31. // execute this filter only once
32. $response = $this->context->getResponse();
* at sfCommonFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfFilterChain.class.php line 53 ...
50. }
51.
52. // execute the next filter
53. $this->chain[$this->index]->execute($this);
54. }
55. }
56.
* at sfFilterChain->execute()
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfRenderingFilter.class.php line 33 ...
30. public function execute($filterChain)
31. {
32. // execute next filter
33. $filterChain->execute();
34.
35. // get response object
36. $response = $this->context->getResponse();
* at sfRenderingFilter->execute(object('sfFilterChain'))
in SF_ROOT_DIR/lib/vendor/symfony/lib/filter/
sfFilterChain.class.php line 53 ...
50. }
51.
52. // execute the next filter
53. $this->chain[$this->index]->execute($this);
54. }
55. }
56.
* at sfFilterChain->execute()
in SF_ROOT_DIR/lib/vendor/symfony/lib/controller/
sfController.class.php line 245 ...
242. }
243.
244. // process the filter chain
245. $filterChain->execute();
246. }
247. else
248. {
* at sfController->forward('profile', 'filter')
in SF_ROOT_DIR/lib/vendor/symfony/lib/controller/
sfFrontWebController.class.php line 48 ...
45. }
46.
47. // make the first request
48. $this->forward($moduleName, $actionName);
49. }
50. catch (sfException $e)
51. {
* at sfFrontWebController->dispatch()
in SF_ROOT_DIR/lib/vendor/symfony/lib/util/sfContext.class.php
line 159 ...
156. */
157. public function dispatch()
158. {
159. $this->getController()->dispatch();
160. }
161.
162. /**
* at sfContext->dispatch()
in SF_ROOT_DIR/web/frontend_dev.php line 13 ...
Any idea
Javi
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---