Hi , i am quite new to cakephp, However its goin fine till now,
I want to search data , which is both from user and profile table. There 
are lot of search options, that means a user can be searched from any of 
his attributes or combination of all.   Further i have a search table 
 which is to save all the searches done by users. My user table has basic 
user info like first name , last name , email, and log in info.  Rest is in 
profile. i have but all the associations requited in the models.  I am not 
sure weather to implement search plugin on user model or search model.

On Sunday, June 17, 2012 4:43:03 AM UTC+5:30, Bob Bowen wrote:
>
> Hi and thanks for the reply.
>
> Yea, I had seen this plugin, it's a fork of the CakeDC plugin. And I see 
> in the docs that you can do something like this:
>
> class Article extends AppModel {
>   public $filterArgs = array(
> 'enhanced_search' => array('type' => 'like', 'field' => 
> array('Article.name', 'OtherModel.name'))
>   }
> }
>
> But what is not explained is, how do I get the plugin to actually search 
> within the 'OtherModel' Model? I ask because later in the Controller you 
> have:
>
> class ArticlesController extends AppController {
>     public $components = array('Search.Prg');
>
>     public $presetVars = true; // using the model configuration
>
>     public function find() {
>         $this->Prg->commonProcess();
>         $this->paginate['conditions'] = $this->*Article*
> ->parseCriteria($this->passedArgs);
>         $this->set('articles', $this->paginate());
>     }
> }
>
> And in the .ctp you have:
>
> echo $this->Form->create('*Article*', array(
>     'url' => array_merge(array('action' => 'find'), $this->params['pass'])
> ));
>
> As you can see, the Article Model is always referenced. So if I want to 
> search for a field from another model, like the 'OtherModel.name' example 
> above, it crashes, saying:
>
> Column not found: 1054 Unknown column ' OtherModel.name ' in 'where clause'
>
> The SQL is more or less:
>
> SELECT `Article`.`id`, ... FROM `articles` WHERE ((`Article`.`name` LIKE 
> '%foo%') OR (`OtherModel`.`name` LIKE '%foo%')) 
>
> Obviously OtherModel.name is not going to be found in Article. 
>
> What I need to do is have a general Search box that searches in 4-5 
> different Models. There is no relation between those Models. So I am not 
> sure which Model to put the filterArgs array, which Controller to put the 
> presetVars array and find() function, and how to call it all in my .ctp so 
> that it can return results from all 5 of these Models, not just one.
>
> Can this plugin do it?
>
> Many thanks!
>
> On Friday, June 15, 2012 10:08:11 AM UTC+2, euromark wrote:
>>
>> try this one:
>> https://github.com/dereuromark/search 
>>
>> it can handle multiple fields across models for a like term etc
>>
>>     'field' => array('Primary.field', 'Secondary.other_field')
>>
>>
>> Am Freitag, 15. Juni 2012 00:06:03 UTC+2 schrieb Bob Bowen:
>>>
>>> Is there any way to make this work? As I understand it you have to 
>>> enable Search.Searchable in the $actsAs, and define $filterArgs for each 
>>> Model, then add Search.Prg to $components and define $presetVars in the 
>>> Controller.
>>>
>>> Then in your .ctp file you put something like this:
>>>
>>> echo $this->Form->create('MyModel', array('url' => 
>>> array_merge(array('action' => 'find'), $this->params['pass'])));
>>> echo $this->Form->input('search', array('div' => false));
>>> echo $this->Form->submit(__('Search', true), array('div' => false));
>>> echo $this->Form->end();
>>>
>>> But this allows you to search in one Model at a time. Is there any way 
>>> to define a search form with one search field and have it look in various 
>>> fields within various Models?
>>>
>>> Thanks
>>> Bob
>>>
>>

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscr...@googlegroups.com For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to