为子模型将继承的父模型编写通用插入函数是否常见和/或明智?我在一个非常简单的 CRUD 应用程序上使用 CodeIgniter\PHP,但这个问题确实与语言\框架无关。继承读取(选择)一个值的读取函数效果很好并且感觉正确:父模型
public function read($columnSelect,$columnCondition,$value) {
$query = "SELECT $columnSelect FROM $tableName WHERE $columConditionn=?";
$res = $this->db->query($query,$columnName);
if ($res->result()->num_rows()>0)
return $res->result();
else
return false;
这可以让您检索用户 ID、电子邮件、检查某些列的存在等,我认为这在我的大多数或所有模型中肯定会有用,因此在父模型中编写该函数是个好主意。所有更复杂的读取函数显然都特定于每个模型(例如,读取多个值的查询等) 现在插入呢?除了编写插入一个值、两个值等的函数或编写一个“丑陋”函数来获取参数数组并根据数组构建插入查询之外,我想不出任何通用插入,例如:
public function genericInsert($columnList,$valueList) {
$query = " INSERT INTO $tableName(
//now code that parses columnList and adds ','
//and then code that adds VALUES(..) in the same manner
这对我来说绝对不是一种“模式”,而且感觉不对。我忽略了什么吗?你们为您的插入做了什么,它是特定于每个模型的,还是您试图找到一种从父模型继承的方法?此外,如果您愿意,您会发现自己在父模型中添加了哪些功能?(更新、删除等)?
到目前为止,这是我的父模型的样子:
class MY_Model extends CI_Model {
public $tableName;
public function __construct($tableName) {
parent::__construct();
$this->tableName = $tableName;
}
public function read($columnSelect,$columnCondition,$value) {
$query = "SELECT $columnSelect FROM $tableName WHERE $columConditionn=?";
$res = $this->db->query($query,$columnName);
if ($res->result()->num_rows()>0)
return $res->result();
else
return false;
}
}