OK, I made some changes to my DB structure and also to my code but still
getting errors, see below what I'm doing now.
1) Change the table from countries to country and  also rename the
composite PK from country_id to id
2) Change code in the Model, now looks like this:

<?php
class Country extends AppModel {
public $name = 'Country';
}

3) Change code in the Controller:
class CountryController extends AppController {
public $name = 'Country';
 public $helpers = array("Html", "Form");
public $components = array("Session");

public function edit($id = null) {
$this->Country->id = $id;
 if ($this->request->is('get')) {
$this->request->data = $this->Country->read();
 } else {
if ($this->Countries->save($this->request->data)) {
 $this->Session->setFlash(__('The country has been updated.'));
$this->redirect(array('action' => 'index'));
 } else {
$this->Session->setFlash(__('Unable to update the country.'));
 }
}
}

But I get this error:
Missing Database Table
Error: Database table countries for model Country was not found.
Why?
Ing. Reynier Pérez Mira
http://reynierpm.site90.com/



On Thu, Feb 23, 2012 at 8:29 AM, [email protected] <[email protected]>wrote:

> So because CakePHP doesn't support compsite PK then the solution need to
> be change the field country_id for id and also in all the tables. Reading
> the conventions for Models I get one doubt and goes to oneToMany relations.
> If I have one relation oneToMany between tables candidate and education and
> I add the FK candidate_id in education table then CakePHP knows the
> relation by default? This is correct? Please can you take a look at my DB
> design and tell me if something is wrong there:
> http://www.dropmocks.com/mBgrQq ?
>
> Ing. Reynier Pérez Mira
> http://reynierpm.site90.com/
>
>
>
> On Thu, Feb 23, 2012 at 7:40 AM, Tilen Majerle <[email protected]>wrote:
>
>> http://book.cakephp.org/2.0/en/getting-started/cakephp-conventions.html
>>
>> look here, cakephp conventions
>> --
>> Lep pozdrav, Tilen Majerle
>> http://majerle.eu
>>
>>
>>
>> 2012/2/23 [email protected] <[email protected]>
>>
>>> Hi Tilen, I not understand your point here. As you said I have
>>> country_id as PK and my table is Countries not Country so my model code is
>>> this one (Countries.php):
>>>
>>> class Countries extends AppModel {
>>>  public $name = 'Countries';
>>> }
>>>
>>> then if I use $this->Country->id = $id doesn't work and if I
>>> use $this->Countries->country_id = $id doesn't work too. Which should be
>>> the solution? Change my table structure or what?
>>>
>>> Ing. Reynier Pérez Mira
>>> http://reynierpm.site90.com/
>>>
>>>
>>>
>>> On Thu, Feb 23, 2012 at 5:02 AM, Tilen Majerle 
>>> <[email protected]>wrote:
>>>
>>>> you have "country_id" as your primary key in table ?
>>>>
>>>> and "Countries" for modelname ?
>>>> it should be "Country" right ? :)
>>>>
>>>> $this->Countries->country_id = $id; //this is wrong
>>>> here should be ALWAYS "id", so $this->Countries->id = $id;
>>>>
>>>> but u should use camelized and singularized name, so $this->Country->id
>>>> = $id and it will work
>>>>
>>>>
>>>>
>>>> VIEW:
>>>> Form::create(); here you should have the same model name as you pass
>>>> data, "Country" and not CountryFrm
>>>> --
>>>> Lep pozdrav, Tilen Majerle
>>>> http://majerle.eu
>>>>
>>>>
>>>>
>>>> 2012/2/23 [email protected] <[email protected]>
>>>>
>>>>> Hi every:
>>>>> Take a look at this function:
>>>>>
>>>>> public function edit($id = null) {
>>>>> $this->Countries->country_id = $id;
>>>>>  if ($this->request->is('get')) {
>>>>> $this->request->data = $this->Countries->read();
>>>>>  } else {
>>>>> if ($this->Countries->save($this->request->data)) {
>>>>>  $this->Session->setFlash(__('The country has been updated.'));
>>>>> $this->redirect(array('action' => 'index'));
>>>>>  } else {
>>>>> $this->Session->setFlash(__('Unable to update the country.'));
>>>>>  }
>>>>> }
>>>>> }
>>>>>
>>>>> Aparently all seems to be fine but surprise when I call edit method
>>>>> and pass a ID as parameter the data isn't showed in the template, why? Any
>>>>> help? This is the edit.ctp content:
>>>>>
>>>>> <h1>Edit Country</h1>
>>>>> <?php
>>>>>     echo $this->Form->create('CountryFrm', array('action' => 'edit'));
>>>>>     echo $this->Form->input('country_name');
>>>>>     echo $this->Form->input('iso_code_2');
>>>>>     echo $this->Form->input('iso_code_3');
>>>>>     echo $this->Form->input('country_id', array('type' => 'hidden'));
>>>>>     echo $this->Form->end('Save!!!');
>>>>>
>>>>>
>>>>> Ing. Reynier Pérez Mira
>>>>> http://reynierpm.site90.com/
>>>>>
>>>>>  --
>>>>> 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
>>>>
>>>
>>>  --
>>> 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
>>
>
>

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

Reply via email to