{"id":14987222,"url":"https://github.com/oniseven/ci3-adminlte","last_synced_at":"2025-03-21T17:36:36.243Z","repository":{"id":218450146,"uuid":"745359460","full_name":"oniseven/CI3-AdminLTE","owner":"oniseven","description":"Codigniter 3.1.13 with AdminLTE 3.2.0","archived":false,"fork":false,"pushed_at":"2025-01-14T02:36:49.000Z","size":7415,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T12:28:10.530Z","etag":null,"topics":["adminlte","adminlte3","ci3-adminlte","codeigniter","codeigniter-adminlte","codeigniter-adminlte-theme","codeigniter-datatables","codeigniter3","codeigniter3-adminlte3"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oniseven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-19T06:56:02.000Z","updated_at":"2025-01-13T01:54:28.000Z","dependencies_parsed_at":"2024-01-30T04:29:12.128Z","dependency_job_id":"8315def0-8f90-4b69-bedd-b883e69c6b25","html_url":"https://github.com/oniseven/CI3-AdminLTE","commit_stats":{"total_commits":112,"total_committers":1,"mean_commits":112.0,"dds":0.0,"last_synced_commit":"9e4e4607e1a904e61a0300ab8d89bfeba348f1bf"},"previous_names":["oniseven/cignadlte","oniseven/ci3-adminlte"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oniseven%2FCI3-AdminLTE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oniseven%2FCI3-AdminLTE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oniseven%2FCI3-AdminLTE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oniseven%2FCI3-AdminLTE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oniseven","download_url":"https://codeload.github.com/oniseven/CI3-AdminLTE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235706033,"owners_count":19032595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adminlte","adminlte3","ci3-adminlte","codeigniter","codeigniter-adminlte","codeigniter-adminlte-theme","codeigniter-datatables","codeigniter3","codeigniter3-adminlte3"],"created_at":"2024-09-24T14:14:16.567Z","updated_at":"2025-03-21T17:36:36.225Z","avatar_url":"https://github.com/oniseven.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is CI3-AdminLTE (Codeigiter 3.1.13 + AdminLTE 3.2.0)\n\nThe journey began when I sought the optimal method to seamlessly integrate an Admin Template with CodeIgniter 3. Exploring various approaches, including Core, Helper, and Library implementations, I experimented with each method. Ultimately, I discovered that the choice between these approaches is subjective, dependent on personal preference. Any method can be employed, as long as it aligns with your ease of understanding and accomplishes your objectives. In this repository, I adopted the Library approach, finding it notably more convenient for maintenance compared to alternative methods. \n\nIn this repo I use `CodeIgniter 3.1.13` and `AdminLTE 3.2.0` for the admin template.\n\nSo if you are looking for a ready to use CodeIgniter 3 with AdminLTE Template, feel free to clone this repo and tweak it according to your needs. Also, not all example page of AdminLTE is available in here, because that is not the point of this repo.\n\nThis repo come with `Datatables` example usage and different concept of using `Model` and `Core Model` and also `Dynamic Menus`. That might gonna need a tweak here and there depend on your personal preference.\n\n# Can I use it with other Admin Template?\n\nIf what you mean by use is using the concept? Then yes, you can use the concept of templating in this repo with another Admin Template that you want. \nYou could still use this template library by adjusting a couple things like:\n- On `application/views/template/default` folder, adjust all the file base on the Admin Template that you use. Like header, sidebar, content, and footer, you can adjust it to your need.\n- Tweaking a couple things in `application/libraries/Template.php` file specially the `load` function. Set the view to what ever file that you already set up.\n- For other functions, you can also tweak it or even delete it according to your need.\n\nBut I suggest you to create your own template library file base on your Admin Template, and implement the concept of this repo template library. Because every admin template have their own unique points, fitures, and structures that might not fit with the template library that I create in here which is solely based on `AdminLTE 3.2.0`.\n\n# Server Requirements\n\n- PHP version 7 or newer (It has to be 7+ because I use `??` in some of the code)\n- MySQL Server (Testing in MariaDB 10.5.4)\n- Composer\n\n# Installations\n\n- Clone this to your php server, you could use XAMPP or any kind of PHP server.\n- In cli/bash run `composer install` it will install dependency from `composer.json`.\n- Create database for example `db_cignadlte`.\n- Rename `.env-test` in `application` folder to `.env`, and populate the data according to your database config.\n- Run migration by accessing \u003chttp://localhost/yourappname/migrate\u003e or using cli `php index.php migrate`\n- If some how the migration is failed, you can also import the database using sql file that you find in root folder as `demo_db_cignadlte.sql`\n- That's it. You are good to go, just open your browser and go to \u003chttp://localhost/yourappname\u003e.\n- Have fun.\n\n# Template Library Usage\n\n### Details\n- Location: `application/libraries`\n- filename: `Template.php`\n\n### Load the template\n\nThis function has 2 parameter,\n- `$view` (* mandatory): Its your view page file so its mandatory otherwise error will occurred\n- `$data`: Data for your page\n\nTo load the template with your view content you could just do\n\n```php\n$this-\u003etemplate-\u003eload(\"welcome\");\n```\n\nif you have some data you could just simply pass on the data into the function parameter\n\n```php\n$this-\u003etemplate-\u003eload(\"welcome\", $data);\n```\n\n----\n\n### Set Page Type\n\nThere are 2 page type that currently exist in this application.\n1. `default` page, which is gonna include all default AdminLTE like header, menus, sidebar, and footer.\n2. `blank` page, which is a literally blank page with no header, menus, sidebar, and footer. for example, login page will use this type of page because  it contains no header, menus, and else.\n\nBy default, the page type value is `default`. so you dont have to call this methode if you are using the default page.\n\n```php\n$this-\u003etemplate-\u003epage_type(\"blank\");\n```\n\n----\n\n### Set Page Title\n\n```php\n$this-\u003etemplate-\u003epage_title(\"Welcome Page\");\n```\n\n----\n\n### Add Custom Page CSS\n\nif you have a specific custom css for a page, you can load it by using this method\n\n```php\n$this-\u003etemplate-\u003epage_css(\"assets/dist/css/pages/demo.css\");\n```\n\nYou could also set the parameter as an array if you have multiple custom css file for one page\n\n```php\n$this-\u003etemplate-\u003epage_css([\n  \"assets/dist/css/pages/demo1.css\", \n  \"assets/dist/css/pages/demo2.css\"\n]);\n```\n\n----\n\n### Add Custom Page JS\n\nif you have a specific custom js for a page, you can load it by using this method\n\n```php\n$this-\u003etemplate-\u003epage_js(\"assets/dist/js/pages/demo.js\");\n```\n\nYou could also set the parameter as an array if you have multiple custom js file for one page\n\n```php\n$this-\u003etemplate-\u003epage_js([\n  \"assets/dist/js/pages/demo1.js\", \n  \"assets/dist/js/pages/demo2.js\"\n]);\n```\n\n----\n\n### Hide Toolbar Content\n\n```php\n$this-\u003etemplate-\u003ehide_content_toolbar(); // no parameter needed\n```\n\n----\n\n### Hide Breadcrums\n\n```php\n$this-\u003etemplate-\u003ehide_breadcrums(); // no parameter needed\n```\n\n----\n\n### Hide Footer\n\n```php\n$this-\u003etemplate-\u003ehide_footer(); // no parameter needed\n```\n\n----\n\n### Hides a couple things\n\nto hides a couple things in one go, you could use this function, for now its only work to hide such as \n- `content_title`\n- `breadcrums`\n- `footer`\n\n```php\n$this-\u003etemplate-\u003ehides([\n  'content_title',\n  'breadcrums',\n  'footer'\n]);\n```\n\n----\n\n### Use Plugins\n\nUpdate your list of 3rd parties javascript/jquery plugins that you use for your app in `application/configs/plugins.php`\n\n```php\n$this-\u003etemplate-\u003eplugins(\"datatables\"); \n```\n\nYou could also set the parameter as an array\n\n```php\n$this-\u003etemplate-\u003eplugins([\"datatables\"]);\n```\n\n----\n\n### Set Custom Class\n\nThis methode is use if you want to add a custom or additional class to some specific tags. Access the tag classes data in view by calling `$classes` variable.\n\n```php\n$this-\u003etemplate-\u003etag_class(\"body\", \"hold-transition login-page\");\n```\n\n----\n\n### Examples\n\n```php\n$this-\u003etemplate-\u003epage_title(\"Welcome Page\");\n$this-\u003etemplate-\u003eplugins(\"datatables\"); \n$this-\u003etemplate-\u003epage_js(\"assets/dist/js/pages/demo.js\");\n$this-\u003etemplate-\u003eload(\"welcome\");\n```\n\nor\n\n```php\n$data = []; // set your data here\n$this-\u003etemplate\n  -\u003epage_title(\"Welcome Page\")\n  -\u003eplugins(\"datatables\")\n  -\u003epage_js(\"assets/dist/js/pages/demo.js\")\n  -\u003eload(\"welcome\", $data);\n```\n\nOther example\n\n```php\n$this-\u003etemplate\n  -\u003epage_type('blank')\n  -\u003epage_title('Login page')\n  -\u003etag_class('body', 'hold-transition login-page')\n  -\u003eload('login');\n```\n\n---\n\n# Core MY_Model Usage\n\nHonestly I hate to repeat my self to type the same function again and again across all model file, like insert update delete. Thats why I made this custom core model called `MY_Model`. All the function in this core model, I made it base on what I need in most of my App, like insert, update, delete, and a couple other functions so I don't have to copy and paste it across all Model, which could be not fit with you. So, feel free to not use it if you don't want it and if you don't use it, don't forget to tweak the `Template Library` for the menu part and also the `datatables` example controller.\n\n## Details\n- Location: `application/core`\n- filename: `MY_Model.php`\n\n## Public Variables\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eName\u003c/td\u003e\n\t\t\u003ctd\u003eDefault\u003c/td\u003e\n\t\t\u003ctd\u003eDescription\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\u003ccode\u003e$db_group\u003c/code\u003e\u003c/td\u003e\n\t\t\u003ctd\u003edefault\u003c/td\u003e\n\t\t\u003ctd\u003eThis a database group that had been you set on the config database file, by default the group name is \u003ccode\u003edefault\u003c/code\u003e, but if you have multiple database connection with different group name you can set the group name in here\u003c/td\u003e\n\t\u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$db_name\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003eNULL\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eThis database name is used only if you want to access different database within the same database group\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$table\u003c/code\u003e *\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eCurrent table name that used by the model, this is mandatory\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$alias\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003eNULL\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eIf you want to set an alias for your table, you can set it here\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$id_column_name\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eid\u003c/td\u003e\n    \u003ctd\u003eWe do know that most of table has their own primary id, and usually the column name is \u003ccode\u003eid\u003c/code\u003e, but if somehow you decided to name the column differently like \u003ccode\u003enot_id\u003c/code\u003e maybe, then you better set this to that name\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$allowed_columns\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ci\u003eNULL\u003c/i\u003e\u003c/td\u003e\n    \u003ctd\u003eList of allowed column for the table, make sure its in array, once again it must be an array\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Examples Creating Model extends MY_Model\n\n```php\n  // Location: application/models\n  // Filename: Users.php\n\n  class Users extends MY_Model {\n    public $table = \"users\";\n    public $alias = \"u\";\n\n    // this is not mandatory, this allowed columns checker will only be running \n    // when its not empty and only when you are calling insert and update function\n    public $allowed_columns = [\n      'id', \n      'fullname', \n      'username', \n      'password',\n      'email', \n      'is_active'\n    ];\n  }\n```\n\nor if you use different database name within the same group connection\n\n```php\n  class Users extends MY_Model {\n    public $db_name = \"finance\";\n    public $table = \"users\";\n    public $alias = \"usr\";\n  }\n```\n\nof if you want to declare a model with different group connection\n\n```php\n  class Users extends MY_Model {\n    public $db_group = \"db_conn_group_2\";\n    public $table = \"users\";\n    public $alias = \"usr\";\n  }\n```\n\n----\n\n## Core Model Fiturs\n\n### Query SQL\n\nWell it just literaly an sql query. LOL\n\n#### Example\n\n````php\n// load model\n$this-\u003eload-\u003emodel('users');\n\n// sql query\n$sql = \"SELECT id, fullname FROM users WHERE is_active = 1\";\n\n// call the method\n$query = $this-\u003eusers-\u003equery($sql);\n\n// check the query status\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n````\n\n### Insert Data\n\nJust like the method name, this method is use to insert / create new data to the table. \nThis method accept one `array` parameter which should contain at least one of the index below\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eIndex\u003c/td\u003e\n    \u003ctd\u003eType\u003c/td\u003e\n    \u003ctd\u003eDescription\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003edata\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eMost of the time you will use this index to store the data\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003edata_false\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eUse this parameter to prevent data form being escaped\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Example\n\n```php\n// load the model\n$this-\u003eload-\u003emodel('users');\n\n// set all the data\n$params = [\n  'data' =\u003e [\n    'fullname' =\u003e 'John Doe',\n    'email' =\u003e 'john_doe@mail.com'\n  ],\n  'data_false' =\u003e [\n    'invoice_date' =\u003e 'CURDATE()'\n  ]\n];\n\n// this will be converted to\n/**\n * $this-\u003edb-\u003eset(data)\n *          -\u003eset(data_false, '', false)\n *          -\u003einsert(table)\n **/\n\n// calling insert method\n$query = $this-\u003eusers-\u003einsert($params);\n\n// check the query status\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n```\n\n----\n\n### Update Data\n\nThis update method also only accept one `array` parameter, which contain index below.\n\n**There are no index checker, so becareful with it.**\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eIndex\u003c/td\u003e\n    \u003ctd\u003eType\u003c/td\u003e\n    \u003ctd\u003eDescription\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003edata\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eMost of the time you will use this index for the data\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003edata_false\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eUse this parameter to prevent data form being escaped\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray | string\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eMost of the time you will use this index to filter the data\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_false\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eUse this filter to prevent data from being escaped\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_in\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eGenerates a WHERE field IN\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\n      \u003cb\u003ePS: You can add more index variant if you want according to your need\u003c/b\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Example\n\n````php\n// load a model\n$this-\u003eload-\u003emodel('users');\n\n// set the method parameter\n$params = [\n  'data' =\u003e [\n    'fullname' =\u003e 'John Doe',\n    'email' =\u003e 'john_doe@mail.com'\n  ],\n  'data_false' =\u003e [\n    'invoice_date' =\u003e 'CURDATE()'\n  ],\n  'where' =\u003e [\n    'id' =\u003e 1\n  ],\n  'where_false' =\u003e [\n    'YEAR(invoice_date)' =\u003e 2024\n  ],\n  'where_in' =\u003e [\n    ['invoice_type', [1, 2, 3]],                     // index 0 as column and index 1 as value\n    ['column' =\u003e 'payment_type', 'value' =\u003e [1, 2]], // you can also declare it with column and value key\n    // it will prioritize index 0 and 1 first rather than column and value key\n  ]\n];\n\n// this will be converted to\n/**\n * $this-\u003edb-\u003eset(data)\n *          -\u003eset(data_false, '', false)\n *          -\u003ewhere(where_value)\n *          -\u003ewhere(where_false_value, '', false)\n *          -\u003ewhere_in(1st_where_in_column, 1st_where_in_value)\n *          -\u003ewhere_in(2st_where_in_column, 2st_where_in_value)   // if you have more where in\n *          -\u003ewhere_in(n_where_in_column, n_where_in_value)       // if you have more where in\n *          -\u003eupdate(table)\n **/\n\n// calling the update method\n$query = $this-\u003eusers-\u003eupdate($params);\n\n// check the query status\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n````\n\n----\n\n### Delete Data\n\nThis update method also only accept one `array` parameter, which contain index below.\n\n**There are no index checker, so becareful with it.**\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eIndex\u003c/td\u003e\n    \u003ctd\u003eType\u003c/td\u003e\n    \u003ctd\u003eDescription\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eMost of the time you will use this index to filter the data\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_false\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eUse this filter to prevent data from being escaped\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_in\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eGenerates a WHERE IN\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_not_in\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eGenerates a WHERE NOT IN\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\n      \u003cb\u003ePS: You can add more index variant if you want according to your need\u003c/b\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Example\n\n````php\n// load a model\n$this-\u003eload-\u003emodel('users');\n\n// set the method parameter\n$params = [\n  'where' =\u003e [\n    'group_access' =\u003e 1\n  ],\n  'where_false' =\u003e [\n    'YEAR(birthdate)' =\u003e 1989\n  ],\n  'where_in' =\u003e [\n    ['id', [1, 2, 3]],                          // index 0 as column and index 1 as value\n    ['column' =\u003e 'id', 'value' =\u003e [1, 2, 3]],   // you can also declare it with column and value key\n    // it will prioritize index 0 and 1 first rather than column and value key\n  ]\n];\n\n// this will be converted to\n/**\n * $this-\u003edb-\u003ewhere(where_value)\n *          -\u003ewhere(where_false_value, ''. false)\n *          -\u003ewhere_in(1st_where_in_column, 1st_where_in_value)\n *          -\u003ewhere_in(n_where_in_column, n_where_in_value)     // if you have more where in\n *          -\u003edelete(table)\n **/\n\n// calling the method\n$query = $this-\u003eusers-\u003edelete($params);\n\n// check the query status\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n````\n\n----\n\n### Get All Data\n\nThis method is use to get all the data in the table without any filter and no LIMIT, with below parameter\n\n**Do not use it on the table with huge amount of data in it**\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eVariable\u003c/td\u003e\n    \u003ctd\u003eType\u003c/td\u003e\n    \u003ctd\u003eDefault\u003c/td\u003e\n    \u003ctd\u003eDescription\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$column\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring | array\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003e*\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eList column to show\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$escape\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean | NULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eNULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eEscape string\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Example\n\n````php\n// load a model\n$this-\u003eload-\u003emodel('users');\n\n// calling the method\n$query = $this-\u003eusers-\u003eget_all();\n\n// this will be converted to\n/**\n * $this-\u003edb-\u003eselect('*', NULL)\n *          -\u003efrom(users)\n *          -\u003eget()\n **/\n\n// check the query status\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n````\n\n----\n\n### Find By ID\n\nThis method is use to get data by primary key id column, with below parameter\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eVariable\u003c/td\u003e\n    \u003ctd\u003eType\u003c/td\u003e\n    \u003ctd\u003eDefault\u003c/td\u003e\n    \u003ctd\u003eDescription\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$value\u003c/code\u003e *\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003einteger | string\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eWell its literally the value of the ID of course\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$column_name\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eid\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003ePrimary key id column name\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$select\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray|string\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003e*\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eList of column to show\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$escape\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean | NULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eNULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eEscape String for select\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$distinct\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eFALSE\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eDistinct the result, somehow I need this parameter.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Example\n\n````php\n// load a model\n$this-\u003eload-\u003emodel('users');\n\n// calling the method\n$query = $this-\u003eusers-\u003efind_by_id(13);\n\n// this will be converted to\n/**\n * $this-\u003edb-\u003eselect('*', NULL)\n *          -\u003efrom('users')\n *          -\u003ewhere('id', 13)\n *          -\u003eget()\n **/\n\n// check the query status\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n````\n\n----\n\n### Find By\n\nThis method is use to get data by custom column, with below parameter\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eVariable\u003c/td\u003e\n    \u003ctd\u003eType\u003c/td\u003e\n    \u003ctd\u003eDefault\u003c/td\u003e\n    \u003ctd\u003eDescription\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$column_name\u003c/code\u003e *\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eColumn name\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$value\u003c/code\u003e *\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003einteger|string\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003ePrimary key id column name\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$select\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray|string\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003e*\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eList of column to show\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e$escape\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean | NULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eNULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eEscape String for select\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Example\n\n````php\n// load a model\n$this-\u003eload-\u003emodel('users');\n\n// calling the method\n$query = $this-\u003eusers-\u003efind_by('is_active', 1);\n\n// this will be converted to\n/**\n * $this-\u003edb-\u003eselect('*', NULL)\n *          -\u003efrom('users')\n *          -\u003ewhere('is_active', 1)\n *          -\u003eget()\n **/\n\n// check the query status\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n````\n\n----\n\n### Find Data\n\nThis update method only accept 2 parameter: \n\n1. `$configs` type `array`,\n2. `$last_query` type `boolean` default `false`\n\nWith `$configs` contain index below:\n\n**There are no index checker, so becareful with it.**\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eIndex\u003c/td\u003e\n    \u003ctd\u003eType\u003c/td\u003e\n    \u003ctd\u003eDefault\u003c/td\u003e\n    \u003ctd\u003eDescription\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eselect\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray|string\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eid_column_name\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eList of column to show using select query builder, if you didn't declare it, it will fill with primary key id that been declare on the model\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003edistinct\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003efalse\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing distinct query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eescape\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean | NULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eNULL\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eprevent escape string for selected column\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ejoin\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing join quiery builder, with only one table\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ejoins\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eusing join query builder, with multiple table\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing where query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_false\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing where query builder with escape string as FALSE\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_in\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing where_in query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ewhere_not_in\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing where_not_in query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eor_where\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing or_where query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eor_where_in\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing or_where_in query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eor_where_not_in\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing or_where_not_in query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003elike\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing like query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eor_like\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing or_like query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003elike_array\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing like query builder but passing array as data\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eor_like_array\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing or_like query builder but passing array as data\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003eorder_by\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring | array\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing order_by query builder with string value\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003egroup_by\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003earray | string\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing group_by query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003elimit\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003einteger | array\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing limit query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003etable_alias\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing different table alias\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003etable\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003estring\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing other table as pivot\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ecompile_select\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eUsing get_compiled_select query builder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ecount_all_results\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eTo return count all result value\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ecount_all\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ccode\u003eboolean\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n    \u003ctd\u003eTo return count all value\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"4\"\u003e\n      \u003cb\u003ePS: You can add more index variant if you want according to your need\u003c/b\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Example\n\n````php\n// load a model\n$this-\u003eload-\u003emodel('users');\n\n// set the configs parameter\n// remember you don't have to use all of it, use it according to your need\n$configs = [\n  'select' =\u003e ['id', 'name', 'email'],\n  // or\n  'select' =\u003e 'id, name, email',\n\n  'distinct' =\u003e true, // or false - default false\n  'escape' =\u003e false, // or NULL - default false\n\n  // joining with one table\n  'join' =\u003e [\n    'user_privilege as up',\n    'up.user_id = u.id',\n    'inner',\n    FALSE // or NULL or TRUE or just exclude it\n  ],\n  // or\n  'join' =\u003e [\n    'table' =\u003e 'user_privilege as up',\n    'on' =\u003e 'up.user_id = u.id',\n    'type' =\u003e 'inner',\n    'escape' =\u003e FALSE // or NULL or TRUE or just exclude it\n  ],\n\n  // joining multiple table\n  'joins' =\u003e [\n    [\n      'user_privilege as up',\n      'up.user_id = u.id',\n      'inner',\n    ],\n    [\n      'table' =\u003e 'user_invoice as ui',\n      'on' =\u003e 'ui.user_id = u.id',\n      'type' =\u003e 'inner',\n    ]\n  ],\n\n  'where' =\u003e [\n    'id' =\u003e 2\n  ],\n\n  'where_false' =\u003e [\n    'YEAR(u.birthdate)' =\u003e 1998\n  ],\n\n  'where_in' =\u003e [\n    [\n      'id',       // column\n      [1, 2, 3],  // value\n      NULL,       // escape, you can exclude this\n    ],\n    [\n      'column' =\u003e 'invoice_type',\n      'value' =\u003e 3,\n      'escape' =\u003e NULL, // you can exclude this\n    ]\n  ],\n\n  'where_not_in' =\u003e [\n    [\n      'id',       // column\n      [1, 2, 3],  // value\n      NULL,       // escape, you can exclude this\n    ],\n    [\n      'column' =\u003e 'invoice_type',\n      'value' =\u003e 3,\n      'escape' =\u003e NULL, // you can exclude this\n    ]\n  ],\n\n  'or_where' =\u003e [\n    'id' =\u003e 2\n  ],\n\n  'or_where_false' =\u003e [\n    'YEAR(u.birthdate)' =\u003e 1998\n  ],\n\n  'or_where_in' =\u003e [\n    [\n      'id',       // column\n      [1, 2, 3],  // value\n      NULL,       // escape, you can exclude this\n    ],\n    [\n      'column' =\u003e 'invoice_type',\n      'value' =\u003e 3,\n      'escape' =\u003e NULL, // you can exclude this\n    ]\n  ],\n\n  'or_where_not_in' =\u003e [\n    [\n      'id',       // column\n      [1, 2, 3],  // value\n      NULL,       // escape, you can exclude this\n    ],\n    [\n      'column' =\u003e 'invoice_type',\n      'value' =\u003e 3,\n      'escape' =\u003e NULL, // you can exclude this\n    ]\n  ],\n\n  'like' =\u003e [\n    [\n      'username', \n      'john', \n      'both' // you can exclude this\n    ],\n    [\n      'column' =\u003e 'email',\n      'keyword' =\u003e 'doe',\n      'type' =\u003e 'both', // you can exclude this\n    ]\n  ],\n\n  'or_like' =\u003e [\n    [\n      'username', \n      'john', \n      'both' // you can exclude this\n    ],\n    [\n      'column' =\u003e 'email',\n      'keyword' =\u003e 'doe',\n      'type' =\u003e 'both', // you can exclude this\n    ]\n  ],\n\n  'like_array' =\u003e [\n    'username' =\u003e 'john',\n    'email' =\u003e 'doe'\n  ],\n\n  'or_like_array' =\u003e [\n    'username' =\u003e 'john',\n    'email' =\u003e 'doe'\n  ],\n\n  'order_by' =\u003e 'username ASC, email DESC',\n  // or\n  'order_by' =\u003e [\n    [\n      'username', // column\n      'ASC'       // direction\n    ],\n    [\n      'column' =\u003e 'email',\n      'dir' =\u003e 'DESC'\n    ]\n  ],\n\n  'group_by' =\u003e 'id',\n  // or\n  'group_by' =\u003e ['id', 'username'],\n\n  'limit' =\u003e 10,\n  // or\n  'limit' =\u003e [\n    10, // length\n    20  // start / offset\n  ],\n  // or\n  'limit' =\u003e [\n    'length' =\u003e 10,\n    'start' =\u003e 20\n  ],\n\n  'table_alias' =\u003e 'usr', // make sure if you set this up then use this alias\n\n  'table' =\u003e 'settings as s', // its kinda rare to use it. I use it when I'm lazy to load the model its self so I just using the existing model that had been loaded but overide the table name\n\n  'compile_select' =\u003e true, // you can exclude this, default is false,\n\n  'count_all_result' =\u003e true, // will return integer\n\n  'count_all' =\u003e true, // will return integer\n];\n\n// calling the method\n$query = $this-\u003eusers-\u003efind($configs);\n\n// check the query status\n// if query is fail or num_rows is 0, status value will be false\nif(!$query-\u003estatus) {\n  // do something here if its false\n} else {\n  // do something here if its true\n}\n````\n\n# Resources\n\n-  Codeigniter \u003chttps://codeigniter.com/docs\u003e\n-  AdminLTE \u003chttps://github.com/ColorlibHQ/AdminLTE\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foniseven%2Fci3-adminlte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foniseven%2Fci3-adminlte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foniseven%2Fci3-adminlte/lists"}