Jump to content


unset_columns on joined table fails.

unset_columns

  • Please log in to reply
2 replies to this topic

#1 Raboo

Raboo

    Member

  • Members
  • PipPip
  • 29 posts

Posted 20 June 2012 - 12:46 PM

Hi,

I have a "$crud->unset_columns('operatingsystem_id');" but yet it is displayed anyway in the list.
operatingsystem_id is a foregin key for operatingsystem table.
os1_id, os2_id, os3_id are duplicate foregin keys for operatingsystem_id in order to display different colums from the operatingsystem table as different colums.

What I want to accomplish is to display os1_id, os2_id, os3_id in the list, but edit operatingsystem_id in the edit.
That works now. But I do not want to display operatingsystem_id in the list. unset_columns doesn't appear to do it's job in this case. Is it a bug?


function _callback_updateos($post_array, $id)
{
  $data = array(
   'os1_id' => $post_array["operatingsystem_id"],
   'os2_id' => $post_array["operatingsystem_id"],
   'os3_id' => $post_array["operatingsystem_id"]
  );
  $this->db->update('node', $data, array('node_id' => $id));
  return true;
}

function node()
{
  try{
   $crud = new grocery_CRUD();
   $crud->set_theme('datatables');
   $crud->set_table('node');
   $crud->set_subject('Nodelist');
   $crud->display_as('customer_id','Customer')
	 ->display_as('operatingsystem_id','OS')
	 ->display_as('service_window_id','Service Window')
	 ->display_as('nodegroup_id','Node Group')
	 ->display_as('adminteam_id','Admin Team')
	 ->display_as('contact_person_id','Owner')
	 ->display_as('ipaddress','IP Address')
	 ->display_as('pwmgmt','Password Management')
	 ->display_as('lastpatch','Last Patched')
	 ->display_as('patchingtype','Patch Type')
	 ->display_as('startroutine','Start Routines')
	 ->display_as('stoproutine','Stop Routines')
	 ->display_as('os1_id','OS')
	 ->display_as('os2_id','OS Version')
	 ->display_as('os3_id','End Of Life');
   $crud->required_fields('name');
   $crud->set_relation('customer_id','customer','name');
   $crud->set_relation('operatingsystem_id','operatingsystem','{name} {version} {servicepack}');
   $crud->set_relation('service_window_id','service_window','name');
   $crud->set_relation('nodegroup_id','nodegroup','name');
   $crud->set_relation('adminteam_id','adminteam','name');
   $crud->set_relation('contact_person_id','contact_person','name');
   $crud->set_relation('os1_id','operatingsystem','name');
   $crud->set_relation('os2_id','operatingsystem','{version} {servicepack}');
   $crud->set_relation('os3_id','operatingsystem','endoflife');
   $crud->unset_fields('os1_id','os2_id','os3_id');
   $crud->unset_columns('operatingsystem_id');
   $crud->unset_texteditor('comments','startroutine','stoproutine');
   $crud->callback_column($this->unique_field_name('service_window_id'),array($this,'_callback_servicewindow'));
   $crud->callback_column($this->unique_field_name('customer_id'),array($this,'_callback_customer'));
   $crud->callback_after_insert(array($this, '_callback_updateos'));
   $crud->callback_after_update(array($this, '_callback_updateos'));
 
   $output = $crud->render();
   $this->_example_output($output);
  
  }catch(Exception $e){
   show_error($e->getMessage().' --- '.$e->getTraceAsString());
  }
}


#2 jean-baptiste

jean-baptiste

    Member

  • Members
  • PipPip
  • 13 posts

Posted 05 February 2013 - 10:40 AM

Hello,

I also reproduced the problem.



#3 davidoster

davidoster

    Grocery CRUD Ninja

  • Advanced Member
  • PipPipPip
  • 1,068 posts
  • LocationAthens, Greece

Posted 07 February 2013 - 04:46 AM

Try to use this to set the columns that you need to be displayed instead,

http://www.grocerycr...nctions/columns


____________________________________________________________

 

rtfm_small.jpg---!!!Please read these guidelines before asking to the forums!!!---

____________________________________________________________

 

David Oster aka George Pasparakis,
http://odphotography.com
http://eletter.gr





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users