set_relation
void set_relation( string $field_name , string $related_table, string $related_title_field [, mixed $where [, string $order_by ] ] )
Set a relation 1-n database relation. This will automatically create a dropdown list to the fields and show the actual name of the field and not just a primary key to the list. An example of this:
$crud->set_relation('user_id','users','username');
You can have as many fields you like to call from the other table and the syntax is really simple. Just at the 3rd field you will have the symbol { and } . So it will be for example:
$crud->set_relation('user_id','users','{username} - {last_name} {first_name}');
And you can have whatever syntax or symbols you like. So for example you can have:
$crud->set_relation('user_id','users','{username} ( {last_name} {first_name} )');
You can also have a where clause at the 4th parameter (is not a required parameter). For example:
$crud->set_relation('user_id','users','username',array('status' => 'active'));
It works exactly like codeigniter's where clause (you can add an array or a string), with the only difference that you cannot add a 3rd parameter (for example true or false).
The 5th parameter (not required) is the order_by. For example:
$crud->set_relation('user_id','users','username',null,'priority ASC');
I added the 4th parameter as null because we don't need a where clause in this example. If we also need a where clause we can simply do:
$crud->set_relation('user_id','users','username',array('status' => 'active'),'priority ASC');
You can also see a simple working example below:
function employees_management() { $crud = new grocery_CRUD(); $crud->set_theme('datatables'); $crud->set_table('employees'); $crud->display_as('officeCode','Office City'); $crud->set_subject('Employee'); $crud->set_relation('officeCode','offices','city'); $output = $crud->render(); $this->_example_output($output); }