广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >如何创建一个简单的 MVC Codeigniter CRUD 应用程序
  • 13
分享到

如何创建一个简单的 MVC Codeigniter CRUD 应用程序

2022-05-26 14:05:06 13人浏览 佚名
摘要

Codeigniter 是需要数据库集成和接口的项目的流行选择。主要原因是用于设置和使用数据库连接的简单框架内选项。这意味着 Codeigniter 是 mvc CRUD 应用程序的绝佳选择。在详细介绍这个 Codeigniter CRUD

代码点火器

Codeigniter 是需要数据库集成和接口的项目的流行选择。主要原因是用于设置和使用数据库连接的简单框架内选项。这意味着 Codeigniter 是 mvc CRUD 应用程序的绝佳选择。在详细介绍这个 Codeigniter CRUD 应用程序之前,我将描述创建、读取、更新和删除的基础知识。

ORMal; background-color: rgb(255, 255, 255); font-weight: 500 !important;">创建、读取、更新和删除

所有基于数据库的应用程序都在一个简单的过程中运行,该过程涉及四个简单的操作——创建、读取(在某些情况下检索)、更新和删除。所有这些操作都应用于数据库,并且对于应用程序的操作是必不可少的。

由于应用程序的用户具有不同的权限,因此需要注意并非所有用户都可以在应用程序中执行这四个操作。类似地,应用程序进程也可以在没有任何特定用户输入的情况下执行这些功能。

  • 创建操作用于创建或向数据库添加数据。

  • Read/Retrieve 操作用于读取已经保存在数据库中的数据。

  • 更新操作用于保存或更新数据库中的数据。

  • 删除操作用于从数据库中删除数据。

现在您已经对 CRUD 有了基本的了解,我将演示如何在 Codeigniter CRUD 应用程序中实现这些想法。

创建数据库和表

我将从创建作为本教程基础的数据库和表开始。出于 Codeigniter CRUD 示例的目的,我将数据库命名为“crud”,将表命名为“faqs”。使用以下 sql 语句进行创建:

CREATE TABLE IF NOT EXISTS `faqs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL COMMENT 'title',
`slug` varchar(255) NOT NULL,
`employee_name` varchar(255) NOT NULL COMMENT 'employee name',
`employee_salary` double NOT NULL COMMENT 'employee salary',
`employee_age` int(11) NOT NULL COMMENT 'employee age',
PRIMARY KEY (`id`),
KEY `slug` (`slug`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='datatable demo table';

在数据库中插入值

一旦数据库和表启动并运行,下一步就是向表常见问题解答添加值。注意表中的字段包括创建数据库和表之后。

CRUD 插入值

配置数据库设置

设置数据库和表后的下一步是配置数据库特定设置,包括主机、数据库名称、用户凭据。这通常通过将这些信息添加到 Codeigniter 数据库配置文件来完成,该文件通常位于文件 application/config/database.PHP 中。

出于本教程的目的,我设置了以下值:

Database hostname: ‘localhost’
Database name: ‘crud
Database username: ‘root’
Database passWord: ‘root’

完整的数据库配置如下:

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'root',
'database' => 'crud',
'dbdriver' => 'Mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

接下来,控制器

下一个主要步骤是创建处理用户请求的控制器,与模型(业务逻辑组件)对话,最后加载适当的视图。

控制器位于文件“application/controllers/Faqs.php”中。出于本教程的目的,我创建了一个具有三个主要功能的控制器。index()函数列出所有FAQ条目,create()函数添加新FAQ条目,调用edit()函数编辑已经发布的FAQ条目,最后delete()函数从数据库中删除FAQ条目. 这是控制器的完整代码:

class Faqs extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('session');
$this->load->library('form_validation');
$this->load->model('faqs_model');
$this->load->helper('url_helper');
}
public function index()
{
$data['faqs'] = $this->faqs_model->get_faqs();
$data['title'] = 'Faqs arcHive';
$this->load->view('templates/header', $data);
$this->load->view('faqs/index', $data);
$this->load->view('templates/footer');
}
public function view($slug = NULL)
{
$data['faqs_item'] = $this->faqs_model->get_faqs($slug);
$data['title'] = $data['faqs_item']['title'];
$this->load->view('templates/header', $data);
$this->load->view('faqs/view', $data);
$this->load->view('templates/footer');
}
public function create()
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Create a FAQ item';
$this->form_validation->set_rules('title', 'Designation', 'required');
$this->form_validation->set_rules('employee_name', 'Name', 'required');
$this->form_validation->set_rules('employee_salary', 'Salary', 'required');
$this->form_validation->set_rules('employee_age', 'Age', 'required');
}
public function save(){
    $this->form_validation->set_rules('title', 'Designation', 'required');
    $this->form_validation->set_rules('employee_name', 'Name', 'required');
    $this->form_validation->set_rules('employee_salary', 'Salary', 'required');
    $this->form_validation->set_rules('employee_age', 'Age', 'required');
    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('templates/header');
        $this->load->view('faqs/create');
        $this->load->view('templates/footer');
    }
    else
    {
        $this->faqs_model->set_faqs();
        $this->load->view('templates/header');
        $this->load->view('faqs/success');
        $this->load->view('templates/footer');
    }
}
public function edit()
{
$id = $this->uri->segment(3);
$this->load->helper('form');
$this->load->library('form_validation');
$data['title'] = 'Edit a faqs item';
$data['faqs_item'] = $this->faqs_model->get_faqs_by_id($id);
$this->form_validation->set_rules('title', 'Designation', 'required');
$this->form_validation->set_rules('employee_name', 'Name', 'required');
$this->form_validation->set_rules('employee_salary', 'Salary', 'required');
$this->form_validation->set_rules('employee_age', 'Age', 'required');
    if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('faqs/edit', $data);
$this->load->view('templates/footer');
}
else
{
$this->faqs_model->set_faqs($id);
redirect( base_url() . 'index.php/faqs');
}
}
public function delete()
{
$id = $this->uri->segment(3);
$faqs_item = $this->faqs_model->get_faqs_by_id($id);
$this->faqs_model->delete_faqs($id);
redirect( base_url() . 'index.php/faqs');
}
}

构建模型

该模型包含 MVC CRUD 应用程序的“业务”逻辑。就本教程而言,此应用程序的模型与数据库进行通信。因此,模型包含与数据库交互并执行数据选择、插入、更新和删除操作的代码。

为本教程开发的模型具有几个功能,包括:get_faqs() 函数,用于获取 FAQ 项目(通过 $slug 名称),get_faqs_by_id() 函数通过 ID 号获取 FAQ,set_faqs() 函数编辑并将新项目添加到数据库中, 和 delete_faqs() 函数,从数据库中删除特定项目。

请注意,此模型类已在目录“application/models/Faqs_model.php”中创建。

<?php
class Faqs_model extends CI_Model {
    public function __construct()
    {
        $this->load->database();
    }
    public function get_faqs($slug = FALSE)
    {
        if ($slug === FALSE)
        {
            $query = $this->db->get('faqs');
            return $query->result_array();
        }
        $query = $this->db->get_where('faqs', array('slug' => $slug));
        return $query->row_array();
    }
    public function get_faqs_by_id($id = 0)
    {
        if ($id === 0)
        {
            $query = $this->db->get('faqs');
            return $query->result_array();
        }
        $query = $this->db->get_where('faqs', array('id' => $id));
        return $query->row_array();
    }
    public function set_faqs($id = 0)
    {
        $this->load->helper('url');
        $slug = url_title($this->input->post('title'), 'dash', TRUE);
        $data = array(
            'title' => $this->input->post('title'),
            'slug' => $slug,
            'employee_name' => $this->input->post('employee_name'),
            'employee_salary' => $this->input->post('employee_salary'),
            'employee_age' => $this->input->post('employee_age')
        );
        if ($id == 0) {
            return $this->db->insert('faqs', $data);
        } else {
            $this->db->where('id', $id);
            return $this->db->update('faqs', $data);
        }
    }
    public function delete_faqs($id)
    {
        $this->db->where('id', $id);
        return $this->db->delete('faqs');
    }
}


模板标题

模板的标题对所有页面都是通用的。请注意,此模板存储在application/views/templates/header.php 中。完整的 html 代码如下:

<!DOCTYPE html>
<html>
<head>
    <title> Create a Simple MVC Codeigniter CRUD Application</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/CSS/bootstrap.min.css" />
</head>
<body>
<div class="container">

页脚模板

与页眉类似,页脚对所有页面都是通用的。该文件位于 application/views/templates/footer.php 中。完整的 HTML 代码如下:

</div>
 </body>
</html>

创建索引视图

此视图文件用于显示所有 FAQ 项目的列表。该文件由控制器的 index() 函数调用。该文件位于“application/views/faqs/index.php”。索引文件的完整代码如下:

<div class="container">
    <div class="row">
        <div class="col-lg-12 margin-tb">
             
            <div class="pull-right">
                <a class="btn btn-success" href="Http://demo.itsolutionstuff.com/itemCRUD/create">Add FAQs</a>
            </div>
        </div>
    </div>
    <table class="table table-bordered">
        <tbody><tr>
            <th>Title</th>
            <th>Employee Name</th>
            <th>Salary</th>
            <th>Age</th>
            <th width="280px">Action</th>
        </tr>
<?php foreach ($faqs as $faqs_item): ?>
        <tr>
            <td><?php echo $faqs_item['title']; ?></td>
            <td><?php echo $faqs_item['employee_name']; ?></td>
            <td><?php echo $faqs_item['employee_salary']; ?></td>
            <td><?php echo $faqs_item['employee_age']; ?></td>
            <td>
                <a class="btn btn-info" href="<?php echo site_url('faqs/'.$faqs_item['slug']); ?>">Show</a>
                <a class="btn btn-primary" href="<?php echo site_url('faqs/edit/'.$faqs_item['id']); ?>">Edit</a>
                <a class="btn btn-primary" href="<?php echo site_url('faqs/delete/'.$faqs_item['id']); ?>">Delete</a>
            </td>
        </tr>
<?php endforeach; ?>
        </tbody></table>
</div>


详细视图

此视图文件由控制器的 view() 函数调用以显示特定的常见问题解答项目。该文件位于“application/views/news/view.php”中。视图文件的完整代码是:

<?php
echo '<h2>'.$faqs_item['title'].'</h2>';
echo $faqs_item['employee_name'];
echo $faqs_item['employee_salary'];
echo $faqs_item['employee_age'];

添加视图

此视图由控制器类中的 create() 函数调用,并打印一个表单以将 FAQ 项目添加到数据库中。它位于文件 application/views/faqs/create.php 中。这是完整的代码:

<h2><?php echo $title; ?></h2>
<?php echo validation_errors(); ?>
<?php echo form_open('faqs/create'); ?>
 <table>
    <tr>
        <td><label for="title">Title</label></td>
        <td><input type="input" name="title" /></td>
    </tr>
    <tr>
        <td><label for="Employee Name">Name</label></td>
        <td><input type="input" name="employee_name" /></td>
    </tr>
    <tr>
        <td><label for="Employee Salary">Salary</label></td>
        <td><input type="input" name="employee_salary" /></td>
    </tr>
    <tr>
        <td><label for="Employee Age">Age</label></td>
        <td><input type="input" name="employee_age" /></td>
    </tr>
    <td><input type="submit" name="submit" value="Create faqs item" /></td>
    </tr>
</table>
</form>

编辑视图

控制器的 edit() 函数调用此视图文件并打印一个表单来编辑 FAQ 项目。该文件位于 application/views/faqs/edit.php 中。编辑视图文件的完整代码为:

<h2><?php echo $title; ?></h2>
<?php echo validation_errors(); ?>
<?php echo form_open('faqs/edit/'.$faqs_item['id']); ?>
<table>
    <tr>
        <td><label for="title">Title</label></td>
        <td><input type="input" name="title" value="<?php echo $faqs_item['title'] ?>" /></td>
    </tr>
    <tr>
        <td><label for="Employee Name">Name</label></td>
        <td><input type="input" name="employee_name" value="<?php echo $faqs_item['employee_name'] ?>" /></td>
    </tr>
    <tr>
        <td><label for="Employee Salary">Salary</label></td>
        <td><input type="input" name="employee_salary" value="<?php echo $faqs_item['employee_salary'] ?>" /></td>
    </tr>
    <tr>
        <td><label for="Employee Age">Age</label></td>
        <td><input type="input" name="employee_age" value="<?php echo $faqs_item['employee_age'] ?>" /></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="submit" name="submit" value="Edit faqs item" /></td>
    </tr>
</table>
</form>

成功添加视图

当 FAQ 项目成功添加到数据库时,控制器的 create() 函数调用此视图。该文件位于目录 application/views/faqs/success.php 中。这个非常简单的视图如下:

<p>FAQs added successfully!</p>

配置路由

现在所有视图都完成了,是时候在 route.php 文件中配置路由了。好消息是这些路由可以通过使用正则表达式中的一个(或两个)或通配符来定义。该文件位于文件 application/config/routes.php 中。路线的代码是:

$route['faqs'] = 'faqs';
$route['404_override'] = 'custom404'; 
$route['faqs/create'] = 'faqs/create';
$route['faqs/create'] = 'faqs/save';
$route['faqs/edit/(:any)'] = 'faqs/edit/$1';
$route['faqs/view/(:any)'] = 'faqs/view/$1';
$route['faqs/(:any)'] = 'faqs/view/$1';

创建一个新控制器并在其中编写以下代码。

<?php
class custom404 extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }
    public function index()
    {
        $this->output->set_status_header('404');
        $data['content'] = 'custom-error_404'; // This is your View name 
        $this->load->view('index',$data);//This is loading your template
    }
}
?>

现在使用您的自定义消息创建一个名为“ custom-error_404.php ”的视图文件。

结论

至此,您拥有了一个由 Codeigniter 提供支持的简单而完整的 MVC CRUD 应用程序。虽然在设计端有点粗糙,但该应用程序可以毫无问题地添加、显示和编辑常见问题解答项目。您可以将此 Codeigniter CRUD 应用程序用作您自己的 CMS 项目的基础。要查看正在运行的应用程序,请访问实时应用程序的 URL。

--结束END--

本文标题: 如何创建一个简单的 MVC Codeigniter CRUD 应用程序

本文链接: https://www.lsjlt.com/news/9342.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何创建一个简单的 MVC Codeigniter CRUD 应用程序
    Codeigniter 是需要数据库集成和接口的项目的流行选择。主要原因是用于设置和使用数据库连接的简单框架内选项。这意味着 Codeigniter 是 MVC CRUD 应用程序的绝佳选择。在详细介绍这个 Codeigniter CRUD...
    99+
    2022-05-26
  • 怎么用MyBatis创建一个简单的程序
    这篇文章主要介绍“怎么用MyBatis创建一个简单的程序”,在日常操作中,相信很多人在怎么用MyBatis创建一个简单的程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用MyBatis创建一个简单的程序...
    99+
    2023-06-29
  • WCF如何创建简单应用程序
    这篇文章主要介绍WCF如何创建简单应用程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是WCF?WCF, 英文全称(windows Communication Foundation) , 即为windows通讯...
    99+
    2023-06-28
  • Python+Tkinter创建一个简单的闹钟程序
    本文主要是使用 Python 的 Tkinter 库创建一个简单的闹钟程序,它可以在指定的时间播放一个声音来提醒你。这个程序界面比较简单,只有一个标签、三个选项菜单和一个按钮,用户可...
    99+
    2023-05-14
    Python Tkinter编写闹钟程序 Python Tkinter闹钟 Python 闹钟
  • 如何使用MongoDB开发一个简单的 CRUD API
    如何使用MongoDB开发一个简单的CRUD API在现代的Web应用程序开发中,CRUD(增删改查)操作是非常常见和重要的功能之一。在本文中,我们将介绍如何使用MongoDB数据库开发一个简单的CRUD API,并提供具体的代码示例。Mo...
    99+
    2023-10-22
    API MongoDB CRUD
  • 如何创建一个Flex应用程序
    这篇文章主要介绍如何创建一个Flex应用程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex基础Flex是基于组件来进行开发的,为了更有效率地设计和开发Flex应用程序,你应该熟悉这些开发模式以及操作步骤。创建...
    99+
    2023-06-17
  • Django如何创作一个简单的最小程序
    通过web框架搭建一个最简易的程序: 第一步:新建一个web框架程序 通过CMD进入到想要创建web程序的文件夹 数据命令django-admin startproject you...
    99+
    2022-11-12
  • MyBatis入门实例教程之创建一个简单的程序
    准备: (1) IDEA 2021 (2)Java 1.8 (3)数据库 MySQL 5.7 (SQLyog 或 Navicat) 在 MySQL 中创建数据库 mybatisdem...
    99+
    2022-11-13
  • sublime如何创建一个简单的网页
    这篇文章主要介绍了sublime如何创建一个简单的网页,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法步骤:在桌面上新建一个文件夹。打开文件夹在里面新建一个html文件。用...
    99+
    2023-06-15
  • nodejs入门教程二:创建一个简单应用示例
    本文实例讲述了nodejs创建一个简单应用的方法。分享给大家供大家参考,具体如下: 1.创建 test.js // require 来载入 http 模块 var http = require('htt...
    99+
    2022-06-04
    示例 创建一个 入门教程
  • 怎么使用Python和Tkinter创建一个简单的闹钟程序
    这篇文章主要介绍了怎么使用Python和Tkinter创建一个简单的闹钟程序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python和Tkinter创建一个简单的闹钟程序文章都会有所收获,下面我们一起...
    99+
    2023-07-05
  • 如何使用JavaScript创建一个简单的项目
    JavaScript 是一种非常有用的编程语言,它被广泛应用于 web 开发、构建单页应用等领域。因此,了解如何使用 JavaScript 创建项目,是每个 web 开发者都需要掌握的基础技能。在本文中,我们将介绍如何使用 JavaScri...
    99+
    2023-05-14
  • 如何使用 Dockerfile 创建一个简单容器
    目录Dockerfile写一个 Dockerfile优化 Dockerfilecontainer shellDockerfile Dockerfile 是用于指导 docker 创建...
    99+
    2022-11-13
  • 如何创建一个简单的mysql数据库
    今天小编给大家分享一下如何创建一个简单的mysql数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2022-11-30
    mysql
  • 如何使用Node.js创建一个简单的HTTP服务器
    这篇文章主要介绍“如何使用Node.js创建一个简单的HTTP服务器”,在日常操作中,相信很多人在如何使用Node.js创建一个简单的HTTP服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2022-10-19
  • 用Eclipse 创建一个简单的web项目(图文教程)
    Eclipse neon 汉化版 ;1、右击新建 --> 选择 动态Web项目2、 填写 项目名 项目位置 ; 选择 Dynamic web module version 和 tomcat version ; 点击完成 即可创建 项目...
    99+
    2023-05-31
    eclipse 创建 web项目
  • Vue 2.0+Vue-router如何构建一个简单的单页应用
    这篇文章主要介绍Vue 2.0+Vue-router如何构建一个简单的单页应用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、介绍vue.js 是 目前 最火的前端框架,vue.j...
    99+
    2022-10-19
  • 如何使用Python创建第一个CGI程序
    本文小编为大家详细介绍“如何使用Python创建第一个CGI程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用Python创建第一个CGI程序”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第一个CGI程...
    99+
    2023-06-08
  • 如何用Python内置库创建一个命令行应用程序
    这篇文章主要介绍“如何用Python内置库创建一个命令行应用程序”,在日常操作中,相信很多人在如何用Python内置库创建一个命令行应用程序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Python内置...
    99+
    2023-07-06
  • 如何利用C++实现一个简单的聊天室程序?
    如何利用C++实现一个简单的聊天室程序?在信息时代,人们越来越注重网络交流。而聊天室作为一种常见的沟通工具,具有实时性和交互性的特点,被广泛应用于各个领域。本文将介绍如何利用C++语言实现一个简单的聊天室程序。首先,我们需要建立一个基于客户...
    99+
    2023-11-04
    C++ 实现 聊天室程序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作