ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

有关PHP和Magento验证的MVC常规问题

2019-10-23 18:31:20  阅读:169  来源: 互联网

标签:codeigniter magento weblogic php


我一直在使用Magento& PHP CodeIgniter MVC大约4个月.我在了解在哪里为CodeIgniter& amp;设置验证逻辑的地方有一个特殊的问题. Magento,只有在我考虑遵循MVC架构的真正本质时,以非常恰当的语义方式

首先,我将从Magento开始:

假设我在Magento中有一个“分配”模块,该模块与Players&比赛都有.在此“分配”模块的控制器中,我有3种操作方法,需要在其中检查&验证以下内容:

>玩家编号
>比赛编号

在“分配”模块的Block类以及3种操作方法中,也需要进行此验证.
因此,我的查询是应该在该模块的Controller类或Model类中编写以上两点的验证,因为我将需要在Block类&中使用验证.还可以在Controller类中吗?

在这种情况下,实际的MVC架构又意味着什么呢?

如果可能,请提供一个代码段,突出显示您的实现逻辑.

关于CodeIgniter或任何其他PHP MVC框架:-

由于使用会话验证任何内容都是特定于页面的&由于CodeIgniter中没有“块”的概念,因此通常情况下,会话验证和会话变量的设置仅在Controller类中完成.

因此,我在这方面的疑问是这是正确的方法吗?在什么情况下,我应该安排会议的安排者?模型类中的会话验证?

再次,在这种情况下,实际的MVC架构意味着什么?

再次,如果可能的话,请提供一个代码片段,强调实现的逻辑.

对于此&我真的很困惑我有点被困在这里.请在这里帮助我.任何解决方案/帮助将不胜感激.提前谢谢了.

编辑:-

如果可能,请提供一些有关如何创建&的Magento代码.用Model方法中定义的实际异常消息编写适当的验证以及引发异常?

解决方法:

模型层应该能够保持其自身的一致性,因此,无论其他决定如何,您都应在模型层中包括您的验证.为了帮助用户(并提供更多有用的验证消息),您可能还希望在控制器级别进行一些验证.

这种方法的优势在于,假设您维护模型层,则流氓控制器不会设置错误的数据.这涉及到您的第二个问题,Magento的答案是使用一个对象来管理会话部分的数据,并在进入会话的途中验证该数据.

另外,要在块/视图中处理验证,请考虑使用这种验证.它有其自身的缺陷,但通常可以减少您必须编写的验证代码的数量:

// make sure that the below returns the relevant assignment model class
$assignment = $this->getAssignment(); // or get it via a session, or helper, or what have you.
$player = getChosenPlayer();


try {
    $assignment->setPlayer($player); //throws exception when invalid
    ... do more ...
    $assignmnent->save();
} catch(SomeException $e) {
    addValidationError($e->getMessage());
    renderPageAgain();
}

标签:codeigniter,magento,weblogic,php
来源: https://codeday.me/bug/20191023/1914619.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有