【问题标题】:Should I use Datatables backend plugin in MVC framework我应该在 MVC 框架中使用 Datatables 后端插件吗
【发布时间】:2015-09-02 06:37:46
【问题描述】:

我正在使用 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);

任何建议!

【问题讨论】:

    标签: php jquery model-view-controller datatable


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 2013-04-27
      • 1970-01-01
      • 2013-10-17
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多