What are the results of find list? Jeremy Burns Class Outfit
[email protected] http://www.classoutfit.com On 28 Apr 2011, at 07:19, jackgoh wrote: > Hi Jeremy, > > - There is a missing ' before category_id after > 'associationForeignKey' > => sorry, my typo in this content only. sorry. > > - Your conditions in the find->list look wrong; try 'conditions' => > array('stock_id' => $this->Stock->id) > => The results are the same. both ways are working, but your > suggestion way is better. ;) > > - The convention is to name your joining table CategoryStock (the two > models are in alphabetical order). Although your arrangement ought to > work, I generally stay with conventions unless there is a compelling > reason not to. > => I changed it as what you suggested. (in Stock model & StockCategory > model) > > - Do you have a model for StockCategory? > => Yes: > class CategoryStock extends AppModel > { > var $name = CategoryStocks; > } > > - What happens when you use find 'all' rather than 'list'? > => i got the correct array!! But the result look like: > Array > ( > [0] => Array > ( > [CategoryStock] => Array > ( > [stock_id] => 1 > [business_category_id] => 4 > ) > > ) > > [1] => Array > ( > [CategoryStock] => Array > ( > [stock_id] => 1 > [business_category_id] => 7 > ) > > ) > [2] => Array > ( > [CategoryStock] => Array > ( > [stock_id] => 1 > [business_category_id] => 14 > ) > > ) > > ) > > > - What happens when you die(debug($selectedRecord)) in your controller > before passing it to your view? > => same as above result. > > > Out of interest, what does the resulting SQL look like? > => (i simplified) :SELECT CategoryStock.* FROM `stock_CategoryStocks` > AS `CategoryStock` WHERE `stock_id` = 1 , effected rows is 3 , which > is always correct, when use the find('list'), the effected rows is > still 3, but debug($selectedRecord) show only 1 record in the array. > Weird. > > Thanks. > > Regards > Jack > > On Apr 28, 12:03 pm, Jeremy Burns | Class Outfit > <[email protected]> wrote: >> These might be typos but some of the code looks *slightly* odd. >> >> - There is a missing ' before category_id after 'associationForeignKey' >> - Your conditions in the find->list look wrong; try 'conditions' => >> array('stock_id' => $this->Stock->id) >> - The convention is to name your joining table CategoryStock (the two models >> are in alphabetical order). Although your arrangement ought to work, I >> generally stay with conventions unless there is a compelling reason not to. >> - Do you have a model for StockCategory? >> - What happens when you use find 'all' rather than 'list'? >> - What happens when you die(debug($selectedRecord)) in your controller >> before passing it to your view? >> >> Out of interest, what does the resulting SQL look like? >> >> Jeremy Burns >> Class Outfit >> >> [email protected]http://www.classoutfit.com >> >> On 27 Apr 2011, at 22:51, jackgoh wrote: >> >> >> >>> Hi cricket, >> >>> The $this->Stock->id is set correctly. And the SQL is working >>> perfectly, i can get the correct number of records (which 3 of them: >>> 4, 7, 14) >> >>> On Apr 27, 1:53 am, cricket <[email protected]> wrote: >>>> Is $this->Stock->id set to something? What does the SQL look like? Set >>>> debug to 2 to see it. >> >>>> On Mon, Apr 25, 2011 at 1:25 PM, jackgoh <[email protected]> wrote: >>>>> Hi, >> >>>>> I am facing some problem when deal with a realtionship tables, the >>>>> record is not display : >> >>>>> // in Stock model: >>>>> var $hasAndBelongsToMany = array( >>>>> 'Category' => array( >>>>> 'className' => 'Category', >>>>> 'joinTable' => 'category', >>>>> 'foreignKey' => 'stock_id', >>>>> 'associationForeignKey' => category_id', >>>>> 'with' => 'StockCategory', >>>>> ), >>>>> ); >> >>>>> // in Stock controller: >>>>> $selectedRecord = $this->Stock->StockCategory->find('list', >>>>> array( 'fields'=>array('stock_id','category_id'), >>>>> 'conditions'=>array('stock_id='.$this->Stock->id) ) ); >>>>> $this->set(compact('selectedRecord')); >> >>>>> I try to copy the SQL by using debug() to phpmysql, and i get 3 lines >>>>> of records. but when i try to PRINT_R the $selectedRecord, i can only >>>>> get 1 record, example: >> >>>>> Array >>>>> ( >>>>> [1] => 4 >>>>> ) >> >>>>> Suppose the result have to be : >> >>>>> Array >>>>> ( >>>>> [1] => 4 >>>>> [1] => 7 >>>>> [1] => 14 >>>>> ) >> >>>>> Values : 4,7,14 are category_id, [1] is stock_id. There is a table >>>>> call "category" to store all the category name. >> >>>>> Please point out whats wrong to my code or logic?? >> >>>>> Thanks >> >>>>> Best Regards. >> >>>>> -- >>>>> Our newest site for the community: CakePHP Video >>>>> Tutorialshttp://tv.cakephp.org >>>>> Check out the new CakePHP Questions sitehttp://ask.cakephp.organdhelp >>>>> others with their CakePHP related questions. >> >>>>> To unsubscribe from this group, send email to >>>>> [email protected] For more options, visit this group >>>>> athttp://groups.google.com/group/cake-php-Hide quoted text - >> >>>> - Show quoted text - >> >>> -- >>> Our newest site for the community: CakePHP Video >>> Tutorialshttp://tv.cakephp.org >>> Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help >>> others with their CakePHP related questions. >> >>> To unsubscribe from this group, send email to >>> [email protected] For more options, visit this group >>> athttp://groups.google.com/group/cake-php- Hide quoted text - >> >> - Show quoted text - > > -- > 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 -- 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
