我应该使用数据表后端插件在MVC框架


Should I use Datatables backend plugin in MVC framework

我使用MVC PHP框架,我设法编写所有模型,然后我完成了所有后端人员。在后来的前端开发中,为了使一切变得更容易和更快,我发现自己需要使用Datatables插件,但这迫使我以特定的格式发送响应,因此我编写了一个插件,将从模型返回的值更改为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);

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

示例2 -没有模型使用:

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

任何建议!

我认为是的,你应该调用你的插件到你的控制器或业务逻辑写的地方。您正在使用插件转换从数据库返回的数据,您只是添加一层到您的数据库模型。如果在Model中编写一些核心查询或在Model中编写转换逻辑,将会破坏MVC的代码分离逻辑。但是,如果你这样认为,你可以使用第三方库教义或活跃的记录也将只需要实例化模型和分离的登录数据提取层和转换逻辑的模型,有很多框架使用这些库数据提取逻辑与业务逻辑分离并以适当的格式转换数据需要通过你的框架,在此基础上,你需要做一些你也表示层的变化。