我应该在 MVC 框架中使用 Datatables 后端插件吗?

Should I use Datatables backend plugin in MVC framework

我正在使用 MVC PHP 框架,我设法编写了所有模型,然后完成了所有后端人员的工作。后来在前端开发中,为了让一切变得更简单、更快捷,我发现自己需要使用 Datatables 插件,但这迫使我以特定格式发送响应,所以我写了一个插件来改变返回的模型中的值转换为数据表中所需的格式。

示例 1 - 使用我自己的插件建模:

$this->myModel->setCostRange(50, 93);
$this->myModel->setCustomerId(123);
$results = $this->myModel->search();

// Then I use my plugin this way to change the response format
$results = $this->_buildGrid($results);

这是我的解决方案,虽然 Datatables 提供了许多后端插件来进行查询而不是模型,但我认为这与代码分离原则和 MVC 逻辑冲突。

示例 2 - 未使用模型:

$g = new \Data\Grid("tableName");
$g->addColumn(
    "name",
    "Name"
 );
 $g->addColumn(
     "userEmail",
     "Email"
 );
 $g->render($_POST);

任何建议!

我想是的,你应该将你的插件调用到你的控制器或者业务逻辑所在的地方 written.You 正在使用插件从数据库转换数据 return,你只是添加了一层转到您的数据库模型。如果将一些核心查询写在Model中,或者将转换逻辑写到Model中,就会破坏MVC的代码分离逻辑。但是,如果你这么认为,你也可以使用像 doctrine 或 Active Records 这样的第三方库,它们只需要在你的模型中实例化并将数据提取层的登录和转换逻辑与模型分开,有很多框架使用这些库将数据提取逻辑与业务逻辑分开,并以框架所需的适当格式转换数据,在此基础上,您还需要在表示层中进行一些更改。希望这对您有所帮助 :).