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

Php 我应该在MVC框架中使用Datatables后端插件吗,php,jquery,model-view-controller,datatable,Php,Jquery,Model View Controller,Datatable,我使用的是MVC PHP框架,我成功地编写了所有模型,然后完成了所有后端人员的工作。后来在前端开发中,为了使一切变得更简单、更快,我发现自己需要使用Datatables插件,但这迫使我以特定的格式发送响应,因此我编写了一个插件,将模型返回的值更改为Datatables中所需的格式 示例1-带有我自己插件的模型: $this->myModel->setCostRange(50, 93); $this->myModel->setCustomerId(123); $result

我使用的是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);
这就是我的解决方案,虽然Datatables提供了许多后端插件来进行查询,而不是模型,但我认为这与代码分离原则和MVC逻辑相冲突

示例2-无模型使用:

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

任何建议

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

我认为是的,你应该将你的插件调用到你的控制器中,或者在写业务逻辑的地方。你使用插件转换数据库返回的数据,你只是在数据库模型上添加了一层。如果您在模型中编写一些核心查询或在模型中编写转换逻辑,将打破MVC的代码分离逻辑。但是,如果您这样认为,您也可以使用第三方库,如条令或活动记录,它们只需要在您的模型中实例化,并将数据提取层和转换逻辑的登录与模型分离,有很多框架使用这些库将数据提取逻辑与业务逻辑分离,并将数据转换为框架所需的适当格式,在此基础上,还需要在表示层中进行一些更改。希望这能帮助你:)。

我认为是的,你应该将你的插件调用到你的控制器中,或者在写业务逻辑的地方。你使用插件转换数据库返回的数据,你只是在数据库模型上添加了一层。如果您在模型中编写一些核心查询或在模型中编写转换逻辑,将打破MVC的代码分离逻辑。但是,如果您这样认为,您也可以使用第三方库,如条令或活动记录,它们只需要在您的模型中实例化,并将数据提取层和转换逻辑的登录与模型分离,有很多框架使用这些库将数据提取逻辑与业务逻辑分离,并将数据转换为框架所需的适当格式,在此基础上,还需要在表示层中进行一些更改。希望这能帮助你:)。

我认为是的,你应该将你的插件调用到你的控制器中,或者在写业务逻辑的地方。你使用插件转换数据库返回的数据,你只是在数据库模型上添加了一层。如果您在模型中编写一些核心查询或在模型中编写转换逻辑,将打破MVC的代码分离逻辑。但是,如果您这样认为,您也可以使用第三方库,如条令或活动记录,它们只需要在您的模型中实例化,并将数据提取层和转换逻辑的登录与模型分离,有很多框架使用这些库将数据提取逻辑与业务逻辑分离,并将数据转换为框架所需的适当格式,在此基础上,还需要在表示层中进行一些更改。希望这将帮助您:)