Sunday, February 28, 2010

Re: Create database table using controller.

Yes, CakePHP will not find your table, because your table is not named
in plural - customers - which is why I wrote that you should conform
to CakePHP conventions.

And do add a primary key to your customers table definition - CakePHP
expects there to be the ID primary key column in the table.
Enjoy,
John


On Feb 28, 6:38 am, veepee <vpc...@gmail.com> wrote:
> Hi John,
>
> Thanks for your prompt reply.
> I have read the CakePHP book but i couldn't find a solution.
> I get this error, "Database table customers is not found" for the
> first time I run the script.
> However, when i refresh the page, the data will be able to save
> accordingly.
>
> The scenario is as below:
> 1. In my database, there are no Customer table.
> 2. So, I use a dummy table to create the customer table.
>  $this->Q->query("CREATE TABLE customer
>                       (First_Name char(50),
>                       Last_Name char(50),
>                       Address char(50) default 'Unknown',
>                       City char(50) default 'Mumbai',
>                       Country char(25),
>                       Birth_Date date)");
>         }
> 3. The snippet above will create the Customer table.
> 4. However, when I load the model for Customer,
> $this->loadModel('Customer');
> it returns me the error "Database table customers is not found".
> 5. When I refresh the page, there is no error and everything works
> fine because the customer table has been created.
>
> Regards,
> Veepee
>
> On Feb 28, 12:58 am, John Andersen <j.andersen...@gmail.com> wrote:
>
> > What is your issue here? Was the table not created, was the model not
> > loaded, was the data not saved?
>
> > Also do look into the CakePHP naming conventions for tables, models
> > and controllers. Following those will make your life a lot easier.http://book.cakephp.org/view/22/CakePHP-Conventions
>
> > Another thing is that your customer table has not primary key!
>
> > So I sincerly recomend you to read the CakePHP book first!
> > Enjoy,
> >    John
>
> > On Feb 27, 4:46 pm, veepee <vpc...@gmail.com> wrote:
>
> > > Hi All,
>
> > > I am new to cakePHP and I've tried googling for this topic but to no
> > > avail. I need to create a database table from controller. May i know
> > > is it possible to insert into the newly created table, i.e. in this
> > > example, the customer table using model?
>
> > >  $this->Q->query("CREATE TABLE customer
> > >                       (First_Name char(50),
> > >                       Last_Name char(50),
> > >                       Address char(50) default 'Unknown',
> > >                       City char(50) default 'Mumbai',
> > >                       Country char(25),
> > >                       Birth_Date date)");
> > >         }
> > >  $this->loadModel('Customer');
> > >  $this->Customers->saveAll(data);
>
> > > I've tried it but this does not work. May I know if there are any
> > > alternatives besides creating another insert statement using
>
> > > $this->Q->query("INSERT INTO customer...");

Check out the new CakePHP Questions site http://cakeqs.org and help others with their CakePHP related questions.

You received this message because you are subscribed to the Google Groups "CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
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?hl=en

No comments: