Ok I fixed it! All conventions need to be followed or it won't work.

Related table ids need to be labeled the singularly followed by id.
For example if the table is called event_categories. In events i need
to have the related id  for the column field called event_category_id.
Also all primary keys should be called id. All tables should be
plural. All model file names are singular, but controller file names
are plural. Model class and variable names are singular. Controller
class and variable names are plural. I think i got everything in
there :).

Just so anyone who has this issue in the future will know what to do!
Basically associations break down if all conventions of tables and
classes for cakePHP aren't followed. Thats how it was for me at least.

On Jul 18, 9:49 am, Parris <[EMAIL PROTECTED]> wrote:
> That didn't seem to make a difference...
> I closed my other post about cake not letting me make my controller
> name plural and reposted it here. I feel like this is a related issue.
> I have another model and controller that Event belongsTo and that
> seems to work fine. I think there is something wrong with the way I
> created something. To make this all work right now I have to call my
> model event.php (Event) and my controller
> event_controller.php(Event_Controller)
> or else cake will tell me the following:
>
> Missing Controller
> Error: EventController could not be found.
>
> Error: Create the class EventController below in file: app/
> controllers/
> event_controller.php
>
> <?php
> class EventController extends AppController {
>
>         var $name = 'Event';
>
> }
>
> ?>
>
> My Event Model (event.php in /models):
> <?php
> class Event extends AppModel
> {
>         var $name = 'Event';
>         var $useTable = 'events';
>         var $belongsTo = array(
>                 'GalleryCategory' => array(
>                         'className'     =>   'GalleryCategory',
>                         'foreignKey' =>      'id',
>                         'associationForeignKey' => 'gallery_id',
>                         'joinTable' => 'gallery_categories'
>                         ),
>                 'EventCategory' => array(
>                         'className'     =>   'EventCategory',
>                         'foreignKey' =>      'id',
>                         'associationForeignKey' => 'cat_id',
>                         'joinTable' => 'event_categories'
>                         )
>                 );
>
> }
>
> ?>
>
> Events Controllers (events_controller.php in /controllers):
> <?php
> class EventsController extends AppController
> {
>         var $name = 'Events';
>
>         function index()
>         {
>                 $this->set('events', $this->Event->findAll());
>         }
>
> }
>
> ?>
>
> Look to my previous post for the info on event_categories. I was able
> to rename that controller and make it plural; however, it wont let me
> with the event controller.
> I have made soo many searches on this. Read and reread all the
> conventions. I have no idea where to turn.
>
> On Jul 18, 1:07 am, grigri <[EMAIL PROTECTED]> wrote:
>
> > Use a `belongsTo`, not a `hasOne`.
>
> > On Jul 18, 3:52 am, Parris <[EMAIL PROTECTED]> wrote:
>
> > > So I have a MVC for Events and Event Categories. I am trying to have
> > > the name of the category appear on the event page. I am associating
> > > events as belonging to event categories with a field called cat_id.
>
> > > I am able the retrieve the tables, but for some reason the event
> > > category part of the array ends up empty.
>
> > > Visually I am trying to make it look something like:
> > > Concert: Annual Event
>
> > > Where Concert is equal to a cat_name which is associated by cat_id(in
> > > the event table) = id(in the event categories table) and Annual Event
> > > is the event_title (in the event table). Also the word concert would
> > > be linked to show a category view
>
> > > Getting data from the event table is no problem.
>
> > > I used print_r($event[0]) to show data from the first entry:
> > > [code]Array ( [Event] => Array ( [id] => 6 [cat_id] => 1 [gallery_id]
> > > => 6 [event_title] => Test [event_date] => 2008-02-09 [event_hour] =>
> > > 6 [event_minute] => 0 [event_ampm] => 1 [event_price] => 10.00
> > > [event_tickets] => 6 [event_venue] => Venue [event_address] => Address
> > > [event_city] => San Jose [event_state] => CA [event_zip] => 95123  )
> > > [EventCategory] => Array ( [id] => [cat_name] => [cat_description]
> > > => ) ) [/code]
>
> > > If you notice the EventCategory part of the array is empty for some
> > > reason....
>
> > > Event Model:
> > > [code]<?php
> > > class Event extends AppModel
> > > {
> > >         var $name = 'Event';
> > >         var $hasOne = array(
> > >                 'EventCategory' => array(
> > >                         'className'     =>   'EventCategory',
> > >                         'foreignKey' =>      'id'
> > >                         )
> > >                 );}
>
> > > ?>
> > > [/code]
>
> > > Event Category Model:
> > > [code]
> > > <?php
> > > class EventCategory extends AppModel
> > > {
> > >         var $name = 'EventCategory';
> > >         var $hasMany = array(
> > >                 'Event' => array(
> > >                         'className'     =>   'Recipe',
> > >                         'order'         =>   'Reciped}
>
> > > ?>
> > > [/code]
>
> > > Event Controller:
> > > [code]
> > > <?php
> > > class EventController extends AppController
> > > {
> > >         var $name = 'Event';
>
> > >         function index()
> > >         {
> > >                 $this->set('event', $this->Event->findAll());
> > >         }}
>
> > > ?>
> > > [/code]
>
> > > Event Category Controller:
> > > [code]
> > > <?php
> > > class EventCategoryController extends AppController
> > > {
> > >         var $name = 'EventCategory';
>
> > >         function index()
> > >         {
> > >                 $this->set('eventcategory', 
> > > $this->EventCategory->findAll());
> > >         }}
>
> > > ?>
> > > [/code]
>
> > > Sorry, I know this is a bit lengthy, but I figured I would give a
> > > bunch of details rather than be vague. Hope someone can help. Also I
> > > don't thing their is a [code] tag here, but it separates things nicely
> > > anyways.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to