来自 MVC validation: where to validate? 中的这个问题,我同意在引发任何数据库调用之前在模型中进行验证的想法。
但是,我对这种情况感到困惑:我有这种形式,它在将行 ID 呈现回浏览器之前将其存储到 session 中。它就像一个 token 。提交表单时,它会检查表单中的ID和 session 中的ID是否相同。该操作与数据库无关。
这个ID的校验是controller的工作还是model的工作?
最佳答案
仿 MVC:在 Controller 中执行。 Controller 处理大部分业务和行为逻辑,而模型处于非事件参与者状态(不知道它在 MVC 三元组中的使用)或只是数据库存储的哑接口(interface)。
真正的 MVC: session 数据是业务逻辑。它是应用程序状态的另一种模型。如果它已经驻留在服务器端 session 存储中,则它不是用户输入( Controller 的实际用途)。
最后,克服用词不当。 MVC 是过去的流行语。 (并且在此之前早已被 MVP 和 PAC 取代)。在 PHP 领域犯下的变体与 MVC 无关。无论实现如何,试图“正确地”做这件事都会失败。参见 https://stackoverflow.com/questions/1549857/simple-php-mvc-framework/1549970#1549970
关于php - MVC - PHP session 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8506426/