You can use beforeFind Model's callback otherwise Model constructor. I
prefer beforeFind method.
class AppModel extends Model {
[...]
public function __construct($id = false, $table = null, $ds =
null) {
// Set here virtualFields ($this->virtualFields = X)
$this->virtualFields = array(
'name' => 'LEFT('. $this->name .'_'.description,
40)'
);
parent::__construct($id, $table, $ds);
}
public function beforeFind($queryData) {
// Set here virtualFields ($this->virtualFields = X)
}
}
On 10 Set, 11:02, the plumpNation <[email protected]> wrote:
> Apologies in advance if this sounds stupid, but have you tried setting
> this property in the "constructor" or it's cake equivalent?
>
> On Sep 9, 4:28 pm, lyba <[email protected]> wrote:
>
>
>
>
>
>
>
> > Any suggestions why it is not possible to join strings in a model
> > file:
>
> > $foo = 'A'.'B';
>
> > this produces error:
> > Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION
> > in .\app\models\event.php on line 7
>
> > A real life scenario:
> > I have a model Event that has a self reference and is called under
> > different aliases (Event, PreviousEvent, NextEvent).
> > I need a virtual name for that model as an extract from the event
> > description
>
> > this works:
> > public $virtualFields = array('name' => 'LEFT(description, 40)');
> > but since model is called under different aliases in one request I get
> > warning:
> > Column 'description' in field list is ambiguous
>
> > I thought this would work:
> > public $virtualFields = array('name' => 'LEFT('. $this->name
> > .'.description, 40)');
>
> > but then I discovered that joining strings in model does not work at
> > all.
--
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
[email protected] For more options, visit this group at
http://groups.google.com/group/cake-php