donh61500
2017-09-19 13:35
浏览 49
已采纳

在Symfony3 / PHP中通过字符串变量创建新的Object

I send variables to my route via an ajax post. Based on the value of my type value I create a new Object, like this:

if($request->get('type') === 'HardwareType'){
    $e = new HardwareType();
}else if($request->get('type') === 'SetupType'){
    $e => new SetupType();
}else{
    new NotFoundHttpException();
}

This gets out of hand quickly even with a switch I think its still "ugly". Is there any way I could do sth. like this:

$e = new $request->get('type')();

Any hint appreciated

EDIT I use the class(es) with this use AppBundle\Entity\HardwareType; etc.

图片转代码服务由CSDN问答提供 功能建议

我通过ajax帖子将变量发送到我的路线。 根据我的 type 值的值,我创建一个新的Object,如下所示:

  if($ request-> get('type')  )==='HardwareType'){
 $ e = new HardwareType(); 
} else if($ request-> get('type')==='SetupType'){
 $ e =>  ;  new SetupType(); 
} else {
 new NotFoundHttpException(); 
} 
   
 
 

即使使用开关,这也很快失控 我认为它仍然“丑陋”。 我有什么办法吗? 像这样:

  $ e = new $ request-> get('type')(); 
   
 
 <  p>任何提示赞赏 
 
 

编辑我使用这个的类使用AppBundle \ Entity \ HardwareType; 等。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题