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 <coast...@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@uphpu.org
> http://uphpu.org/mailman/listinfo/uphpu
> IRC: #uphpu on irc.freenode.net
>

_______________________________________________

UPHPU mailing list
UPHPU@uphpu.org
http://uphpu.org/mailman/listinfo/uphpu
IRC: #uphpu on irc.freenode.net

Reply via email to