Fine, it works now and I understand well this part, cheers and thanks Tilen

Ing. Reynier Pérez Mira
http://reynierpm.site90.com/



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

> read manual again !
>
> models names are Country (singularized and camelized), and controllers are
> CountriesController (pluralized))
> --
> Lep pozdrav, Tilen Majerle
> http://majerle.eu
>
>
>
> 2012/2/23 [email protected] <[email protected]>
>
>> 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
>>
>
>  --
> 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