I am learning Cake with a test project.
As far as I know, validation automatically occurs when the Model's save
() method is called from within a controller. So, if I have defined
validation rules in my model, those rules will be scrutinized before
actually either saving or editing data.
Now, what if the purpose of the form is not to save data?
Example. What if I create a form whose function is to perform a
search?
In this case, I am only using the $this->data information in
conjunction with the find() method, but I am not calling the save()
function.
So... my question, how could I link this search form with the
validation rules initially created for the add() and edit() actions
(which evidently make use of the save() function)?
Here is my sample code:
In my controller:
function search() {
if (empty($this->data)) {
// just render the view
} else {
$results = $this->Book->find('all',
array(
'conditions' => array(
'or' => array(
'Book.isbn' => $this->data['Book']['isbn'],
'Book.title' => $this->data['Book']['title'],
'Book.description' => $this->data['Book']
['description'],
'Book.author_name' => $this->data['Book']
['author_name'],
'Book.starred' => $this->data['Book']['starred']
)
)
)
);
$this->set('data', $this->data);
$this->set('results', $results);
}
}
In my view (ctp file):
<?php echo $form->create('Book', array('action'=>'search')); ?>
<fieldset>
<legend> Search Books </legend>
<?php
echo $form->input('isbn');
echo $form->input('title');
echo $form->input('description');
echo $form->input('author_name');
echo $form->input('starred');
?>
<?php echo $form->end('Search'); ?>
</fieldset>
Thank you.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" 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/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---