Is there anyone knows how to extend the set_relation()
?
Here is the idea, base on the example of Grocery Crud employee and offices table
$crud->set_relation('officeCode','offices','city');
the code output will show all city in dropdown, but I want to extent the set_relation()
to filter all city by state to show in dropdown?
for example I want to show all city of Arizona state in dropdown, Does anyone done this before using grocery crud?
reference example:
I think you need this:
function employees_management()
{
$crud = new grocery_CRUD();
$crud->set_theme('datatables');
$crud->set_table('employees');
// add this line
$crud->callback_edit_field('officeCode',array($this,'_call_back_offices'));
$crud->callback_add_field('officeCode',array($this,'_call_back_offices'));
$crud->display_as('officeCode','Office City');
$crud->set_subject('Employee');
$crud->set_relation('officeCode','offices','city');
$output = $crud->render();
$this->_example_output($output);
}
function _call_back_offices()
{
$this->load->model('user_model'); // your model
$data = $this->user_model->getYou('offices','officeCode, city', "state = '".$this->session->userdata('state')."'"); // iam using session here
$hasil ='<select name="officeCode">';
foreach($data as $x)
{
$hasil .='<option value="'.$x->officeCode.'">'.$x->city.'</option>';
}
return $hasil.'</select>';
}
example user_model code:
function getYou($tabel,$field = '*', $cond ='')
{
$this->db->select($field);
$this->db->from($tabel);
if(!empty($cond)) $this->db->where($cond);
return $this->db->get()->result();
}