I got the same error and I was using related tables.
On Saturday, June 16, 2012 7:13:03 PM UTC-4, 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<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fdereuromark%2Fsearch&sa=D&sntz=1&usg=AFQjCNFXx3wLOL6ZnMqqbpOpqx_xLzlvUA>
>>
>>
>> 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
>>>
>>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.