Wednesday, April 27, 2011

Re: Some problem on the hasmany relationship

When i tried to debug($this->data['BusinessCategory']); in the Edit
View, i can get correct array which is 3 records in the array.

On Apr 28, 2:19 pm, jackgoh <kockh...@gmail.com> 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
>
>
>
> <jeremybu...@classoutfit.com> 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
>
> > jeremybu...@classoutfit.comhttp://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 <zijn.digi...@gmail.com> 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 <kockh...@gmail.com> 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.organdhelpothers with their CakePHP related questions.
>
> > >>> To unsubscribe from this group, send email to
> > >>> cake-php+unsubscribe@googlegroups.com For more options, visit this group athttp://groups.google.com/group/cake-php-Hidequoted 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.organdhelp others with their CakePHP related questions.
>
> > > To unsubscribe from this group, send email to
> > > cake-php+unsubscribe@googlegroups.com For more options, visit this group athttp://groups.google.com/group/cake-php-Hide quoted text -
>
> > - Show quoted text -- 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
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: