当前位置: 首页 > 知识库问答 >
问题:

如何解决Symfony 2中的一些问题?

慕容安易
2023-03-14

我现在开始探索Symfony 2的世界,面对一些我认为在这样的专业框架下不会发生的真正奇怪的问题。我会一个接一个地向你展示我面临的问题:

1)如何获取最近的actionName?我只找到了这个半专业的解决方案:

 $request->attributes->get('_controller');
 // will get yourBundle\Controller\yourController::CreateAction

 $params = explode('::',$request->attributes->get('_controller'));
 // $params[1] = 'createAction';

 $actionName = substr($params[1],0,-6);

这是严重的,我必须做一些额外的工作才能得到它,为什么…有更好的解决方案吗?用一个方法创建一个基本控制器类,例如getActionName(),但为什么我必须在框架中实现这样的基本功能呢。还有别的办法吗?

2)当我转发请求时,1)中的代码将不起作用。

 $request = $this->container->get('request');
 $getParameterList = $request->query->all();
 if (!empty($getParameterList['mode'])
     && $getParameterList['mode'] == 1) {
   return $this->forward('AcmeDemoBundle:Routing:lawyersearch', array(), $getParameterList);
 }

它不起作用的原因是“AcmeDemoBundle:Routing:lawyersearch”是一种不同于我直接来自某条路线时的格式。这里的第二个问题是,我还必须转发GET参数(我认为也是POST)。有没有一种方式我不必关心它?

3)如何在不使用此注释的情况下使用默认模板:

/**
 * @Template()
 */
public function indexAction()
{
  return array();
}

我不想让我的所有方法都有这个注释;我知道我可以把它放在类定义的顶部。有没有办法实现这一点?我看到的唯一解决方案是编写一个BaseController,通过模块/控制器/action之外的方法确定默认模板。

4)我发现了使用公共属性的类,例如Symfony\Component\Validator\Constraint\Llong,例如public$max;

这个怎么解决?很奇怪,因为这是不专业的使用公共属性。

我希望有人能找到简单的解决办法。如果Symfony 2在这么多案例中有这么多奇怪的行为,那将是真正令人失望的。4奇怪的事情我开始探索它两天了。这让我觉得,当我继续下去时,会有更多的东西。

请确认框架没有其他解决方案,或者哪个是解决方案。谢谢

共有2个答案

夏兴生
2023-03-14

1)使用常量__FUNCTION__http://php.net/manual/en/language.constants.predefined.php

2)尝试设置方法$request:$this-

3)我不知道,大概不可能。

4)< code > Symfony \ Component \ Validator \ Constraints \ Length 是约束之一:http://Symfony . com/doc/current/book/validation . html # Constraints

欧阳勇军
2023-03-14

1)通过访问请求的'_controller'参数,您正在深入研究Symfony2的内部结构。除了路由之外,它们很少记录与此相关的任何内容。您应该更明确地使用控制器操作,不要试图在这个级别上实现太多自动化。

2)Symfony2不能考虑高动态控制器。您知道可以拨打 -

这是$request=$this的原因之一——

3) 也已弃用。Symfony2 最佳实践现在不鼓励使用具有空参数的 @Template(),因为操作/模板的开发可能不稳定。您应该显式定义要使用的模板(如果使用模板)。这在处理仅数据响应时派上用场。您不希望您的响应自动使用模板,因为这会导致您的设计中出现意外行为。

 类似资料:
  • 本文向大家介绍解决pytorch 模型复制的一些问题,包括了解决pytorch 模型复制的一些问题的使用技巧和注意事项,需要的朋友参考一下 直接使用 会出现当更新model2时,model1的权重也会更新,这和自己的初始目的不同。 经评论指出可以使用: 来实现深拷贝,手上没有pytorch环境,具体还没测试过,谁测试过可以和我说下有没有用。 原方法: 所有要使用模型复制可以使用如下方法。 这样编写

  • 抱歉打扰你们了。我知道,这个问题已经问了好几遍了。然而,我就是无法解决我的问题。 所以,我一直在尝试创建一个网球计分系统,当你点击两个按钮之一,赢按钮或输按钮时,就会显示出分数。我有一个按钮,他们可以在那里添加他们的名字到计分系统。当一个选手赢了两盘,比赛就结束了。然后我试着印上他们的名字,上面写着,____赢了比赛。当我尝试使用打印它们名称的变量时,我得到的结果是:[objectHTMLButt

  • 我有一个颤振按钮的问题,因为按下它不会产生任何事件,我想不出任何方法来修复它。 代码: 代码: 错误: 手势捕获异常处理手势时引发了以下断言:使用不包含导航器的上下文请求的导航器操作。 用于从导航器推送或弹出路由的上下文必须是导航器小部件的后代小部件的上下文。当抛出异常时,这是堆栈:#0 Navigator.of.(包: flutter/src/小部件/navigator.dart:2711: 9

  • 我是Java开发新手,不熟悉各种导入(Maven、Git等),所以我简单地说: 这两个没有在代码中解决我正在检查,我不知道我应该采取什么样的行动,也不知道我应该导入什么来解决它,但它可能是一些流行的库。 是否有完整的指南指导开发人员如何在eclipse中导入包(例如,C#开发人员使用Nuget,尽管有大量手工制作的包),或者他们真的使用所有这些巨大的导入选择器?

  • 问题内容: 下面的程序引发NullPointerException。在Log cat中,它显示: 单击该按钮时,它不会进入Mousefragment类。我试图解决它,但是我不能-如何解决这个问题? 编辑 单击该按钮多少次,该异常随同invalid_ip Toast消息一起显示 问题答案: 如前所述,您的问题询问如何解决此问题。 您需要弄清楚在哪里抛出。为此,请查看堆栈跟踪以查看引起问题的行。然后,