Re: How to custom belongsto in CakePHP 2?

2012-02-06 Thread Cristian Deluxe
I'm still trying but there's no luck : (

On 3 ene, 17:41, Cristian Deluxe djcristiandel...@gmail.com wrote:
 Thanks AD7six, i also tried it in my previous test but Cake never
 render the page, it seems to make a loop and it fails with this error:

 Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp
 \htdocs\MyAppName\trunk\lib\Cake\Model\Datasource\DboSource.php on
 line 1436

         var $belongsTo = array(
                         'Wdevice' = array(
                                                                 'className' 
 = 'Wdevice',
                                                                 'foreignKey' 
 = false,
                                                                 'conditions' 
 = array('Wdevice.device_mac =
 Radpostauth.username')

                         )
         );

 If i do the SQL query in phpMyAdmin it works correctly:

 Mostrando registros 0 - 29 ( 50 total, La consulta tardó 0.2787 seg)
 [id: 20179 - 20130]
 (Sorry for the Spanish)

 SELECT  `Radpostauth`.`id` ,  `Radpostauth`.`username` ,
 `Radpostauth`.`pass` ,  `Radpostauth`.`reply` ,
 `Radpostauth`.`authdate` ,  `Wdevice`.`id` ,
 `Wdevice`.`wcontract_id` ,  `Wdevice`.`device_mac` ,
 `Wdevice`.`wdevices_model_id` ,  `Wdevice`.`created` ,
 `Wdevice`.`modified`
 FROM  `radpostauth` AS  `Radpostauth`
 LEFT JOIN  `wdevices` AS  `Wdevice` ON (  `Wdevice`.`device_mac` =
 `Radpostauth`.`username` )
 WHERE 1 =1
 ORDER BY  `Radpostauth`.`id` DESC
 LIMIT 50

 And if i write:
                                                                 'conditions' 
 = array('Wdevice.device_mac =
 Radpostauth.username' = '')

 It works (don't enter in a loop) but the query fails:

 SELECT  `Radpostauth`.`id` ,  `Radpostauth`.`username` ,
 `Radpostauth`.`pass` ,  `Radpostauth`.`reply` ,
 `Radpostauth`.`authdate` ,  `Wdevice`.`id` ,
 `Wdevice`.`wcontract_id` ,  `Wdevice`.`device_mac` ,
 `Wdevice`.`wdevices_model_id` ,  `Wdevice`.`created` ,
 `Wdevice`.`modified`
 FROM  `radpostauth` AS  `Radpostauth`
 LEFT JOIN  `wdevices` AS  `Wdevice` ON (  `Wdevice`.`device_mac` =
 `Radpostauth`.`username` '') // - note the ( '' )
 WHERE 1 =1
 ORDER BY  `Radpostauth`.`id` DESC
 LIMIT 50

 SQLSTATE[42000]: Syntax error or access violation: 1064 You have an
 error in your SQL syntax; check the manual that corresponds to your
 MySQL server version for the right syntax to use near ''') WHERE 1 = 1
 ORDER BY `Radpostauth`.`id` desc LIMIT 50' at line 1

 So i don't know what to do now : (

 Thanks for your help guys : )

 On 3 ene, 12:19, AD7six andydawso...@gmail.com wrote:







  On Jan 3, 11:23 am, CristianDeluxedjcristiandel...@gmail.com
  wrote:

   Hey thanks : )

   I've tried this but seems like CakePHP doesn't parse the condition
   correctly:

           var $belongsTo = array(
                           'Wdevice' = array(
                                                                   
   'className' = 'Wdevice',
                                                                   
   'foreignKey' = false,
                                                                   
   'conditions' = array('Wdevice.device_mac' =
   'Radpostauth.username')

  If the above did what you wanted cake would be rife with sql injection
  problems. Thankfully it does exactly what you asked and tests where
  device_mac = the string you've typed in the conditions.

  You want
  array('Wdevice.device_mac = Radpostauth.username')

  probably.

  AD

-- 
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


Re: How to custom belongsto in CakePHP 2?

2012-01-03 Thread Cristian Deluxe
Hey thanks : )

I've tried this but seems like CakePHP doesn't parse the condition
correctly:


var $belongsTo = array(
'Wdevice' = array(
'className' = 
'Wdevice',
'foreignKey' = 
false,
'conditions' = 
array('Wdevice.device_mac' =
'Radpostauth.username')

)
);

SELECT `Radpostauth`.`id`, `Radpostauth`.`username`,
`Radpostauth`.`pass`, `Radpostauth`.`reply`, `Radpostauth`.`authdate`,
`Wdevice`.`id`, `Wdevice`.`wcontract_id`, `Wdevice`.`device_mac`,
`Wdevice`.`wdevices_model_id`, `Wdevice`.`created`,
`Wdevice`.`modified` FROM `radpostauth` AS `Radpostauth` LEFT JOIN
`wdevices` AS `Wdevice` ON (`Wdevice`.`device_mac` =
'Radpostauth.username') WHERE 1 = 1 ORDER BY `Radpostauth`.`id` desc
LIMIT 50

It fails on:

ON (`Wdevice`.`device_mac` = 'Radpostauth.username')

must be:

ON (`Wdevice`.`device_mac` = `Radpostauth`.`username`)

Because if not SQL will try to match `Wdevice`.`device_mac` against
string Radpostauth.username and it don't work.

I've tried to change it but i can't make it work

Thanks for your help


On 1 ene, 08:42, Geoff Douglas drdouglas...@gmail.com wrote:
 BelongsTo is simply a left join, (on the retrieval side)...

 I think what you are looking for is the Relationship conditions option.
 (Which will create the ON statement in SQL)

 So what you want is something that looks like...

 Radpostauth Model...

 var $belongsTo = array(

 'Wdevice' = array(

 'className' = 'Wdevice',

 'foreignKey' = false,

 'conditions' = array(

  Wdevice.device_mac = radpostauth.username

 )

 )

 );

-- 
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


Re: How to custom belongsto in CakePHP 2?

2012-01-03 Thread AD7six


On Jan 3, 11:23 am, Cristian Deluxe djcristiandel...@gmail.com
wrote:
 Hey thanks : )

 I've tried this but seems like CakePHP doesn't parse the condition
 correctly:

         var $belongsTo = array(
                         'Wdevice' = array(
                                                                 'className' 
 = 'Wdevice',
                                                                 'foreignKey' 
 = false,
                                                                 'conditions' 
 = array('Wdevice.device_mac' =
 'Radpostauth.username')

If the above did what you wanted cake would be rife with sql injection
problems. Thankfully it does exactly what you asked and tests where
device_mac = the string you've typed in the conditions.

You want
array('Wdevice.device_mac = Radpostauth.username')

probably.

AD

-- 
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


Re: How to custom belongsto in CakePHP 2?

2012-01-03 Thread Cristian Deluxe
Thanks AD7six, i also tried it in my previous test but Cake never
render the page, it seems to make a loop and it fails with this error:

Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp
\htdocs\MyAppName\trunk\lib\Cake\Model\Datasource\DboSource.php on
line 1436


var $belongsTo = array(
'Wdevice' = array(
'className' = 
'Wdevice',
'foreignKey' = 
false,
'conditions' = 
array('Wdevice.device_mac =
Radpostauth.username')

)
);

If i do the SQL query in phpMyAdmin it works correctly:

Mostrando registros 0 - 29 ( 50 total, La consulta tardó 0.2787 seg)
[id: 20179 - 20130]
(Sorry for the Spanish)

SELECT  `Radpostauth`.`id` ,  `Radpostauth`.`username` ,
`Radpostauth`.`pass` ,  `Radpostauth`.`reply` ,
`Radpostauth`.`authdate` ,  `Wdevice`.`id` ,
`Wdevice`.`wcontract_id` ,  `Wdevice`.`device_mac` ,
`Wdevice`.`wdevices_model_id` ,  `Wdevice`.`created` ,
`Wdevice`.`modified`
FROM  `radpostauth` AS  `Radpostauth`
LEFT JOIN  `wdevices` AS  `Wdevice` ON (  `Wdevice`.`device_mac` =
`Radpostauth`.`username` )
WHERE 1 =1
ORDER BY  `Radpostauth`.`id` DESC
LIMIT 50

And if i write:
'conditions' = 
array('Wdevice.device_mac =
Radpostauth.username' = '')

It works (don't enter in a loop) but the query fails:

SELECT  `Radpostauth`.`id` ,  `Radpostauth`.`username` ,
`Radpostauth`.`pass` ,  `Radpostauth`.`reply` ,
`Radpostauth`.`authdate` ,  `Wdevice`.`id` ,
`Wdevice`.`wcontract_id` ,  `Wdevice`.`device_mac` ,
`Wdevice`.`wdevices_model_id` ,  `Wdevice`.`created` ,
`Wdevice`.`modified`
FROM  `radpostauth` AS  `Radpostauth`
LEFT JOIN  `wdevices` AS  `Wdevice` ON (  `Wdevice`.`device_mac` =
`Radpostauth`.`username` '') // - note the ( '' )
WHERE 1 =1
ORDER BY  `Radpostauth`.`id` DESC
LIMIT 50

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an
error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near ''') WHERE 1 = 1
ORDER BY `Radpostauth`.`id` desc LIMIT 50' at line 1

So i don't know what to do now : (

Thanks for your help guys : )

On 3 ene, 12:19, AD7six andydawso...@gmail.com wrote:
 On Jan 3, 11:23 am, Cristian Deluxe djcristiandel...@gmail.com
 wrote:

  Hey thanks : )

  I've tried this but seems like CakePHP doesn't parse the condition
  correctly:

          var $belongsTo = array(
                          'Wdevice' = array(
                                                                  'className' 
  = 'Wdevice',
                                                                  
  'foreignKey' = false,
                                                                  
  'conditions' = array('Wdevice.device_mac' =
  'Radpostauth.username')

 If the above did what you wanted cake would be rife with sql injection
 problems. Thankfully it does exactly what you asked and tests where
 device_mac = the string you've typed in the conditions.

 You want
 array('Wdevice.device_mac = Radpostauth.username')

 probably.

 AD

-- 
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


Re: How to custom belongsto in CakePHP 2?

2011-12-31 Thread Geoff Douglas
BelongsTo is simply a left join, (on the retrieval side)...

I think what you are looking for is the Relationship conditions option. 
(Which will create the ON statement in SQL)

So what you want is something that looks like...

Radpostauth Model...

var $belongsTo = array(

'Wdevice' = array(

'className' = 'Wdevice',

'foreignKey' = false,

'conditions' = array(

 Wdevice.device_mac = radpostauth.username

) 

)

);

-- 
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


Re: How to custom belongsto in CakePHP 2?

2011-12-30 Thread Cristian Deluxe
Any way?

-- 
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


How to custom belongsto in CakePHP 2?

2011-12-28 Thread Cristian Deluxe
HI i'm working with a external database (RADIUS) that follows the next
structure:

CREATE TABLE IF NOT EXISTS `radpostauth` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `pass` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `reply` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `authdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
AUTO_INCREMENT=19082 ;

and in my app i have another table that follows the CakePHP
conventions

CREATE TABLE IF NOT EXISTS `wdevices` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `wcontract_id` int(11) NOT NULL,
  `device_mac` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci
NOT NULL,
  `wdevices_model_id` int(11) NOT NULL,
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

What work ok with associations (ie: Wcontract, Wdevice) but i'm trying
to make an belongsto association where:

radpostauth.username = wdevices.device_mac

Currently it's works if i do a hasMany association:

class Radpostauth extends AppModel {
public $useDbConfig = 'radius';
var $name = 'Radpostauth';
public $useTable = 'radpostauth';


var $hasMany = array(
'Wdevice' = array(
'className' = 
'Wdevice',
'foreignKey' = 
false,
'finderQuery' 
= '  SELECT Wdevice.*

FROM radpostauth, wdevices AS Wdevice

WHERE radpostauth.id={$__cakeID__$}

AND Wdevice.device_mac = radpostauth.username

ORDER BY Wdevice.id DESC

LIMIT 0, 30;'

)
);
}

---

Sample return:

Array
(
[Radpostauth] = Array
(
[id] = 19061
[username] = 00:11:22:33:44:55
[pass] =
[reply] = Access-Accept
[authdate] = 2011-12-28 12:57:12
)

[Wdevice] = Array
(
[0] = Array
(
[id] = 1
[...]


But it's not the best way to do it because a radpostauth will be have
always just one Wdevice associated so i would like to know if there
are some way to do this kind of association with belongsTo, hasOne,
etc..

Thanks : )

-- 
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