Tutorial - Basic methods
Many users understand the simplicity of using grocery CRUD but after installing it they don't actually know where to start. In this tutorial we will try to cover the basic functionality of grocery CRUD and a step by step tutorial of how using it.
First of all make sure that you have already install grocery CRUD in your project by simply following the steps at grocery CRUD installation or the newbies grocery CRUD installation guide
Let's start with an example table to know exactly what we are expecting to have as a result. Let's say we have the below table:
CREATE TABLE IF NOT EXISTS `employees` ( `employeeNumber` int(11) NOT NULL AUTO_INCREMENT, `lastName` varchar(50) NOT NULL, `firstName` varchar(50) NOT NULL, `extension` varchar(10) NOT NULL, `email` varchar(100) NOT NULL, `officeCode` varchar(10) NOT NULL, `file_url` varchar(250) CHARACTER SET utf8 NOT NULL, `jobTitle` varchar(50) NOT NULL, PRIMARY KEY (`employeeNumber`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1703 ;
First of all we create our function at the controller. Let's say we have the controller Demo and we want to create our function employees_example so we will have something like this:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Demo extends CI_Controller { function __construct() { parent::__construct(); $this->load->database(); } public function index() { } public function employees_example() { $crud = new grocery_CRUD(); $crud->set_table('employees'); $output = $crud->render(); $this->_example_output($output); } function _example_output($output = null) { $this->load->view('our_template.php',$output); } } /* End of file main.php */ /* Location: ./application/controllers/main.php */?>
$this->load->view
combined with grocery CRUD? If you are interested of how to do that, you can read the forums post for 3 different options of how to do that.
set_table
A good starting point is to have always a method like this:
public function my_function_name() { $crud = new grocery_CRUD(); $crud->set_table('your_table_name'); $output = $crud->render(); $this->_example_output($output); }
So we can copy it easily and have a starting point to use grocery CRUD. In our example we first have to see the CRUD is rendered without any problem with the default functionality. So when we will add those 4 simple lines of code at our project we will have a result that will look similar to this:
Now let's add our first record just to have at least one item to work with.
set_subject
Now that we added our first record and we are ready to continue. Let's first start with the most common method
$crud->set_subject('your_subject_name');
So in our case we will have:
public function employees_example() { $crud = new grocery_CRUD(); $crud->set_subject('Employee'); $crud->set_table('employees'); $output = $crud->render(); $this->_example_output($output); }
As we can easily see now ALL the "Record" strings are transformed to "Employees". So now for example we have: "Add Employee", "Edit Employee", "Delete Employee" , "Are you sure that you want to delete this Employee" and so on...
columns
The second most common method is the:
$crud->columns('field_name1','field_name2','field_name3','field_name4');
In our example we will use the:
$crud->columns('lastName','firstName','email','jobTitle');
So with this line of code we will have only 4 columns at our list page and not all the columns of the table. The add and edit form they will still have all the fields of the table without any problem.
fields
However if we still want to have less fields than the table we can simply use:
$crud->fields('field_name1','field_name2','field_name3','field_name4');
So in our case we will have:
public function employees_example() { $crud = new grocery_CRUD(); $crud->set_table('employees'); $crud->columns('lastName','firstName','email','jobTitle'); $crud->fields('lastName','firstName','extension','email','jobTitle'); $output = $crud->render(); $this->_example_output($output); }
display_as
Till now every field has a default label of the database field. If you though want to change that you can simply use:
$crud->display_as('field_name','field_label');
In our case we will have:
$crud->display_as('lastName','Last Name'); $crud->display_as('firstName','First Name'); $crud->display_as('jobTitle','Job Title');
So a summary of our first CRUD with the most common methods is done with the below code:
public function employees_example() { $crud = new grocery_CRUD(); $crud->set_table('employees'); $crud->columns('lastName','firstName','email','jobTitle'); $crud->fields('lastName','firstName','extension','email','jobTitle'); $crud->display_as('lastName','Last Name'); $crud->display_as('firstName','First Name'); $crud->display_as('jobTitle','Job Title'); $output = $crud->render(); $this->_example_output($output); }
You can also check a live example below of what those lines do.
For more examples you can also check the "Simple Examples" at grocery CRUD examples