[UPHPU] Need CakePHP help bad!

Isaac keogh24 at gmail.com
Wed Mar 17 13:02:10 MDT 2010


You welcome, That link saved my life too xD, it's a little bit tricky use
HABTM in CakePHP but that article clears all out.

Regards


On Tue, Mar 16, 2010 at 3:08 PM, Adam Haymond <coastgrd at gmail.com> wrote:

> DUDE!!! I Isaac, you are a life saver!!! Thank you so much for that link!
> You have no idea how long I poured over that issue yesterday!
>
> Thank you very much for giving me the information to solve my problem!
>
>
> -Adam
>
> On Tue, Mar 16, 2010 at 1:02 PM, Isaac <keogh24 at gmail.com> wrote:
>
>> Hi Adam I found this link about HABTM relation in CakePHP, it might be
>> usefull:
>>
>>
>> http://mrphp.com.au/code/code-category/cakephp/cakephp-1-2/working-habtm-form-data-cakephp
>>
>> Regards
>>
>>
>> On Tue, Mar 16, 2010 at 11:04 AM, Adam Haymond <coastgrd at gmail.com>wrote:
>>
>>> I am working to build a job board with an admin side for adding jobs
>>> and categories, and a front end for browsing and searching.
>>>
>>> On the admin side I have a form for editing/creating jobs.
>>>
>>> Each job needs to be able to be assigned to multiple categories. I am
>>> assuming the best way to do this is through an HABTM association of
>>> the jobs and categories tables. So I have created the categories_jobs
>>> table and placed the HABTM associations along with joinTable
>>> properties in each of the jobs and categories models respectively.
>>>
>>> The following information is collected from the form: Title,
>>> Description, Location
>>>
>>> That information needs to be stored in the jobs table.
>>>
>>> Also, I have multiple checkboxes of categories on the form, these come
>>> from the categories table through the HABTM relation.
>>>
>>> When I try to save using $this->Job-save($this->data) I get an SQL
>>> error about saving an array.
>>>
>>> I need to be able to fill out the job data and then select multiple
>>> categories for the job to be associated with.
>>>
>>>
>>> Here is my action in the jobs_controller code:
>>>
>>> function edit($id=null) {
>>>       $this->set('category', $this->Job->Category->find('list'));
>>>       $data = $this->editOrCreate($id);
>>>       if(!empty($this->data)) {
>>>           $this->data['Category']['id'] = (array('category_id'));
>>>           $this->User['User']['admin'] = 1;
>>>           if($this->Job->saveAll($data)) {
>>>               $this->Session->setFlash('The job has been saved');
>>>               $this-
>>> >redirect(array('action'=>'index',null,null,true));
>>>           } else {
>>>               $this->Session->setFlash('The Job could not be saved.
>>> Please try again later.');
>>>           }
>>>       }
>>>       $categories = $this->Job->Category->find('list');
>>>   }
>>>
>>>
>>> and here is the view where the data is entered:
>>>
>>> <?php echo $form->create('Job');?>
>>>
>>> <div class="body">
>>>
>>>       <? if($editing): ?>
>>>               <div class="floatRight">
>>>                       <?php echo $html->link('Delete Job',
>>> array('action'=>'delete',
>>> $form->value('Job.id')), null, __('Are you sure you want to delete
>>> this job?', true).' '. $form->value('Job.name')); ?>
>>>               </div>
>>>
>>>               <h2>Edit Job - <?=$form->value('Job.name')?></h2>
>>>               <?=$form->input('username',array('type'=>'hidden'));?>
>>>       <? else: ?>
>>>               <h2>Create New Job</h2>
>>>
>>>       <? endif; ?>
>>>
>>>       <?=$form->input('name',
>>> array('autocomplete'=>'off','label'=>'Title',
>>> 'style'=>'width: 175px;'));?>
>>>       <?=$form->input('description',
>>> array('autocomplete'=>'off','label'=>'Description', 'style'=>'width:
>>> 175px;'));?>
>>>       <?=$form->input('location', array('autocomplete'=>'off',
>>> 'label'=>'Location', 'style'=>'width: 175px;'));?>
>>>       <?=$form->input('job_id', array('type'=>'hidden',
>>> 'value'=>'job_id'));?>
>>>       <?=$form->input('category_id',array('options'=>
>>> $category,'multiple'=>'checkbox', 'label'=>'Categories'));?>
>>>
>>> </div>
>>>
>>> <?=$form->save('Job');?>
>>>
>>> <?php echo $form->end();?>
>>>
>>>
>>> Any help to overcome this problem would be GREATLY appreciated. I am
>>> pretty new at PHP and CakePHP, so if you could be verbose in your
>>> reply I would be grateful.
>>>
>>> _______________________________________________
>>>
>>> UPHPU mailing list
>>> UPHPU at uphpu.org
>>> http://uphpu.org/mailman/listinfo/uphpu
>>> IRC: #uphpu on irc.freenode.net
>>>
>>
>>
>


More information about the UPHPU mailing list