在本文中,我们将回顾PDO CRUD(一种表单生成器和数据库管理工具) 。 PDO CRUD只需几行代码即可帮助您为数据库表构建表单,从而快速,轻松地引导数据库应用程序。
有许多扩展可用于数据库抽象,尤其是PHP和MySQL的CRUD(创建,读取,更新和删除)生成。 当然,您还将找到提供现成的功能和扩展支持的商业选项。 对于商业选项,您还可以期待高质量的代码,错误修复和新的增强功能。
今天,我们将讨论CodeCanyon上以合理价格购买的PDO CRUD工具。 它是一个完整的CRUD构建器工具,可让您仅通过提供数据库表并编写几行代码来构建应用程序。
它可以与多个数据库后端一起使用,包括MySQL,Postgres和SQLite。 在本文中,我们将看到如何使用PDO CRUD来构建带有MySQL数据库后端的CRUD系统。
安装与配置
在本节中,我们将了解从CodeCanyon购买和下载PDO CRUD工具后,如何安装和配置它。
购买后,您就可以下载该zip文件。 解压缩它,您将找到带有主要插件代码的目录: PDOCrud / script 。 将此目录复制到您的PHP应用程序。
例如,如果在/ web / demo-app / public_html上配置了项目,则应将脚本目录复制到/ web / demo-app / public_html / script 。
接下来,您需要在配置文件中输入数据库后端详细信息。 配置文件位于/web/demo-app/public_html/script/config/config.php 。 在您喜欢的文本编辑器中打开该文件,然后更改该文件中的以下详细信息。
$config["script_url"] = "https://my-demo-app";
/************************ database ************************/
//Set the host name to connect for database
$config["hostname"] = "localhost";
//Set the database name
$config["database"] = "demo_app_db";
//Set the username for database access
$config["username"] = "demo_app";
//Set the pwd for the database user
$config["password"] = "demo_app";
//Set the database type to be used
$config["dbtype"] = "mysql"
如您所见,细节是不言自明的。 $config["script_url"]
设置为用于访问站点的URL。
保存数据库详细信息后,就可以使用PDO CRUD工具了。 在我们的示例中,我们将创建两个保存员工和部门数据的MySQL表。
- 员工 :保存员工信息
- 部门 :保存部门信息
打开数据库管理工具,然后运行以下命令来创建表,如上所述。 我使用PhpMyAdmin与MySQL数据库后端一起使用。
首先,让我们创建部门表。
CREATE TABLE `department` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`department_name` varchar(255) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
接下来,我们将创建employee表。
CREATE TABLE `employee` (
`id` int(12) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`dept_id` int(11) UNSIGNED NOT NULL,
`first_name` varchar(255) NOT NULL DEFAULT '',
`last_name` varchar(255) NOT NULL DEFAULT '',
`email` varchar(255) NOT NULL DEFAULT '',
`phone` varchar(255) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
如您所见,我们在employee表中使用了dept_id
列,该列保存存储在department表中的相应部门的id。
在数据库中创建表之后,我们就可以使用PDO CRUD工具构建CRUD应用程序界面了!
如何设置基本CRUD
在本节中,我们将看到如何通过编写几行代码来使用PDO CRUD工具设置基本的CRUD接口。
部门表
我们将从部门表开始。
让我们创建具有以下内容的department.php 。 如果您的文档根目录为/ web / demo-app / public_html / ,请在/web/demo-app/public_html/department.php中创建department.php文件。 回想一下,我们已经将脚本目录复制到/ web / demo-app / public_html / script 。
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud();
echo $pdocrud->dbTable("department")->render();
现在,如果将浏览器指向department.php文件,则应该看到类似以下内容:
! 仅需两行代码,您就可以使用现成的CRUD UI,该UI允许您在模型上执行所有必要的创建,读取,更新和删除操作。 更不用说默认列表视图本身包含许多功能,包括:
- 搜索
- 内置分页
- 打印
- 将记录导出为CSV,PDF或Excel格式
- 批量删除操作
- 按列排序
单击右侧的“ 添加”按钮,它将打开表单以添加部门记录。
让我们使用“ 添加”按钮添加一些记录,并查看其外观。
如您所见,这是一个非常轻巧简洁的界面。 我们几乎不费吹灰之力就为部门模型建立了CRUD! 接下来,我们将看到如何对employee表执行相同的操作。
员工表
在本节中,我们将看到如何为employee表构建CRUD。 让我们创建具有以下内容的employee.php 。
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud();
echo $pdocrud->dbTable("employee")->render();
与上次代码几乎相同; 我们只需要更改表的名称。 如果单击“ 添加”按钮,它还会为您带来一个漂亮的表格,该表格可让您添加员工记录。
您可能已经发现了一个问题:“ 部门ID”字段是一个文本字段,但最好是包含部门名称的下拉列表。 让我们看看如何实现这一目标。
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud();
// get departments
$data = $pdocrud->getPDOModelObj()->select("department");
$options = array();
foreach($data as $record) {
$options[$record['id']] = $record['department_name'];
}
// change the type of the dept_id field from textfield to select dropdown
$pdocrud->fieldTypes("dept_id", "select");
$pdocrud->fieldDataBinding("dept_id", $options, "", "","array");
echo $pdocrud->dbTable("employee")->render();
在此代码中,我们已通过PDO CRUD访问了部门表,因此我们可以将部门名称与部门ID相关联。 然后,我们更新了部门ID字段的绑定选项,以使其呈现为下拉列表( select
)。
现在,单击“ 添加”按钮以查看外观! 您应该看到Dept Id字段现在已转换为下拉列表!
让我们添加一些员工记录,并查看员工列表的外观:
看起来不错! 但是,这里还有另一个小问题:您可以看到“ 部门ID”列显示部门的ID,最好显示实际的部门名称。 让我们了解如何实现这一目标!
让我们用以下内容修改employee.php的代码。
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud();
// change the type of the dept_id field from textfield to select dropdown
$data = $pdocrud->getPDOModelObj()->select("department");
$options = array();
foreach($data as $record) {
$options[$record['id']] = $record['department_name'];
}
$pdocrud->fieldTypes("dept_id", "select");
$pdocrud->fieldDataBinding("dept_id", $options, "", "","array");
$pdocrud->crudTableCol(array("first_name","last_name", "department_name", "email","phone"));
$pdocrud->joinTable("department", "employee.dept_id = department.id", "INNER JOIN");
echo $pdocrud->dbTable("employee")->render();
在这里,我们已经创建了员工和部门表之间的连接用$pdocrud->joinTable
,然后告诉PDO CRUD只渲染员工姓名,部门名称,并与联系信息$pdocrud->crudTableCol
。
进行此更改后,员工列表应如下所示:
如您所见,PDO CRUD脚本非常灵活,并且允许您使用所有可能的选项来自定义UI。
到目前为止,我们已经讨论了如何设置基本的CRUD接口。 在下一部分中,我们将看到更多选项,可用于增强和定制CRUD UI。
定制选项
在本节中,我们将看到PDO CRUD工具提供的一些自定义选项。 当然,不可能使用所有选项,因为PDO CRUD工具所提供的功能远远超出我们在单篇文章中所涵盖的范围,但是我将尝试强调几个重要的选项。
内联编辑
内联编辑是最重要的功能之一,可让您在列表页面本身上快速编辑记录。 让我们看看如何在部门列表页面上启用它。
让我们修改以下代码段所示的department.php脚本。
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud();
$pdocrud->setSettings("inlineEditbtn", true);
echo $pdocrud->dbTable("department")->render();
如您所见,我们刚刚启用了inlineEditbtn
设置,并且立即有内联编辑功能!
这是一个非常方便的功能,可让您即时编辑记录!
筛选器
您可能已经注意到,部门列表页面已经提供了自由文本搜索来过滤记录。 但是,您可能需要添加自己的自定义过滤器以改善搜索功能。 这正是“ 过滤器”选项所提供的,因为它允许您构建自定义过滤器!
我们将使用employee.php实现此功能,因为它是完美的演示用例。 在员工列表页面上,我们正在显示每个员工记录的部门名称,因此让我们构建一个部门过滤器,该过滤器可让您按部门名称过滤记录。
继续并修改您的employee.php ,如以下代码片段所示。
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud();
$data = $pdocrud->getPDOModelObj()->select("department");
$options = array();
foreach($data as $record) {
$options[$record['id']] = $record['department_name'];
}
$pdocrud->fieldTypes("dept_id", "select");//change state to select dropdown
$pdocrud->fieldDataBinding("dept_id", $options, "", "","array");//add data using array in select dropdown
$pdocrud->crudTableCol(array("first_name","last_name", "department_name", "email","phone"));
$pdocrud->joinTable("department", "employee.dept_id = department.id", "INNER JOIN");
$pdocrud->addFilter("department_filter", "Department", "dept_id", "dropdown");
$pdocrud->setFilterSource("department_filter", $options, "", "", "array");
echo $pdocrud->dbTable("employee")->render();
我们刚刚添加了两行,分别调用addFilter
和setFilterSource
,雇员列表如下所示:
那不是很酷吗? 仅用两行代码,您就添加了自定义过滤器!
图片上传
如果您希望在表单中设置文件上传,则这是一项必备功能。 只需一行代码,您就可以将常规字段转换为文件上传字段,如以下代码片段所示。
我假设您的雇员表中有一个profile_image
字段,并且已经准备好将其转换为文件上传字段!
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud();
$pdocrud->fieldTypes("profile_image", "image");
echo $pdocrud->dbTable("employee")->render();
而已! 用户现在可以将图像上传到profile_image
字段。
验证码
如今,如果您想避免垃圾邮件散发网站,则验证码验证是必不可少的功能。 PDO CRUD工具已经提供了两个选项供您选择。
它提供了两个选项:CAPTCHA和ReCAPTCHA。 如果选择CAPTCHA选项,它将为用户提供数学难题。 另一方面,如果选择ReCAPTCHA选项,则会显示一个著名的“ 我不是机器人难题”!
如果要添加简单的验证码难题,则需要在呈现CRUD之前添加以下行。
$pdocrud->formAddCaptcha("captcha");
另一方面,如果您更喜欢ReCAPTCHA,则可以使用以下代码片段实现相同的目的。
$pdocrud->recaptcha("your-site-key","site-secret");
您只需要用Google提供的有效凭据替换your-site-key
和site-secret
参数即可。
到目前为止,我们已经讨论了增强应用程序功能的选项。 接下来,我们将看到如何改变皮肤,从而改变应用程序的外观。
皮肤
如果您不喜欢默认外观,则可以选择两个选项。 PDO CRUD工具提供了深色,白皙,绿色和高级皮肤作为其他可供选择的选项。
例如,下面的清单基于绿色主题。
看起来不错,不是吗?
纯靴子
尽管默认外观已经支持响应式布局,但是PDO CRUD工具还支持Bootstrap库集成!
如果您希望使用Bootstrap库构建布局,则需要使用以下代码段。
<?php
require_once "script/pdocrud.php";
$pdocrud = new PDOCrud(false, "pure", "pure");
echo $pdocrud->dbTable("department")->render();
这是它的样子:
结论
今天,我们回顾了CodeCanyon上提供的PDO CRUD高级数据库表单生成器和数据管理工具 。 这是CRUD应用程序界面构建器工具的核心。 它提供了各种定制选项,几乎涵盖了CRUD系统所需的所有内容。
正如我之前说的,在一篇文章中很难涵盖PDO CRUD工具提供的所有内容,但是希望官方文档应该使您对它的全面功能有所了解。
我希望您相信PDO CRUD工具功能强大,足以满足您的要求,并且使您摆脱了每次想要在应用程序中设置CRUD时必须做的重复工作。 尽管它是一个商业插件,但考虑到它提供的众多功能,我认为它的价格合理。
如果您有任何建议或意见,请随时使用下面的提要,我们很乐意与您进行对话!