Hi,
maybe this is a silly question but …
how do I best limit the records returnd by a lazy load
say I have 2 models
Artist->Event
I want to use :
$events = $artist->Event
but only retrieve ids and names of events for instance
or just the events that are after a certain date
I want to do this to be able to set certain properties in the Artist model like Artist->futureEvents for instance with the help of a getter method
public function getFutureEvents() {
... some code to restrict Events retrieved by lazy loading ?
$this->_futureEvents = $this->Event;//
}
is this a good approach, is it doable ?
thanks in advance
hi again,
after searching a bit it seems like this :
$this->metaData->relations['Event']->condition = '??.name = :name';
$this->metaData->relations['Event']->params = array(':name' => 'my event');
seems to work
is it a good approach ?
if so I have now to be able to reset the relations parameters if another lazy call was to be performed in the same application run
because this :
$this->metaData->relations['Event']->condition = '';
after a first :
$this->Event
does not seem to reset the conditions
I guess I have to reset the metaData …
maybe this is not the way to go ?
thanks in advance
qiang
(Qiang Xue)
3
Do not modify data in metaData. That will affect all your future queries.
in the upcoming 1.0.5 release, you will be able to supply parameters dynamically to lazy loading. For example:
$comments=Post::model()->comments(array('limit'=>5));
Hi
Quote
That will affect all your future queries.
thats what I thought
so right now there is no way I can change the relations parameters for lazy loading ?
ah thanks
is there a usable version on subversion ?