I included this
function find($type, $queryData = array()) {
if(isset($queryData['index'])) {
if($queryData['index'] === true) {
$index_path =
'{n}.'.$this->alias.'.'.$this->primaryKey;
} elseif(is_string($queryData['index'])) {
$index_path = $queryData['index'];
} else {
return parent::find($type, $queryData);
}
$r = parent::find($type, $queryData);
return Set::combine($r,$index_path,'{n}.'.$this->alias);
} else {
return parent::find($type, $queryData);
}
}
in my AppModel now.
It adds another option to the queryData array so it can be used like this:
$this->Model->find('all',array('index' => true))
I'll have to think of a way so associated data can also be easily indexed.
On Tue, Sep 2, 2008 at 11:55 AM, Howard Glynn <[EMAIL PROTECTED]> wrote:
>
> The only thing I might add is to write a custom method in your model to do
> this find and reindexing.
>
> At least then, hopefully, when (if) this becomes possible, the refactoring
> is a heck of a lot easier and should result in code removal with no change
> to controllers.
>
> In fact I've found myself purging all find() calls from controllers in
> favour of model methods, it makes writing test cases easier against the
> models and helped in the business of converting to the new find syntax. And
> occasionally I'm able to optimize where I have to do reindexing (eg expanded
> use of Set:: class)
>
> Like yourself I'm reluctant to put things like this in AppModel., although
> it would be ok in the model i guess.
>
> I do think what you are asking is possible with the Set class with a lot of
> trial and error (i know i have) but again you'd want to hide that in a model
> method.
>
>
> On Tue, Sep 2, 2008 at 10:08 AM, Marc Schuetze <[EMAIL PROTECTED]>
> wrote:
>>
>> too bad that there is no way to do it.
>> I'm currently doing it exactly the way you suggested but I was hoping
>> for an easier solution.
>> It get's a bit more difficult when you want the associated data to be
>> indexed.
>> But especially it is not so nice because it does affect performance
>>
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---