在symfony中把从控制器的数据的类型类3

问题描述:

我试图从数据库中获取数据,并将其回教窗体的下拉列表在symfony中把从控制器的数据的类型类3

这是从哪儿我期待得到的数据实体从,具体类型列

<?php 

namespace AppBundle\Entity; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity(repositoryClass="AppBundle\Repository\TypesRepository") 
* @ORM\Table(name="types") 
*/ 
class Types 
{ 

/** 
* @ORM\Id 
* @ORM\GeneratedValue(strategy="AUTO") 
* @ORM\Column(name="idtype",type="integer") 
*/ 
private $idtype; 
/** 
* @ORM\Column(type="string", length=100) 
*/ 
private $type; 

,这是保存形式,你可以看到我创建基于我也做了一些互联网谢尔什一个结构类型的类时,建筑工增加了传递价值的变量,则在EntityType中调用它

class sell_form extends AbstractType 
{ 

protected $cat; 

public function __construct (Types $cat) 
{ 
$this->cat = $cat; 
} 

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 


$builder 


->add('categorie',EntityType::class,array(
         "required"=>false, 
         'class' => 'AppBundle\Entity\Types', 
         'choices' => $cat 
         )) 

         ; 
       ; 
} 
} 

和finaly这是我使用一个仓库功能

/** 
    * @Route("/Old/buy", name="old_buy") 
*/ 
public function Old_buyAction() 
{ 

return $this->render('/user_module/Old Views/Old_buy.html.twig'); 
     } 
/** 
    * @Route("/Old/sell", name="old_sell") 
    *@Method({"GET","POST"}) 
*/ 
public function Old_sellAction() 
{ 
$cat = $this->getDoctrine()->getManager()->getRepository('AppBundle:Types')- 
>tn(); 



/*line 122 */ 



$form = $this->createForm(new sell_form($cat)); 
//$form = $this->createForm(sell_form::class,$cat); 
return $this->render("user_module/Old Views/old_sell.html.twig",array(
              "myForm"=> $form->createView(), 


            )); 

这是它的显示

Catchable Fatal Error: Argument 1 passed to 
AppBundle\Forms\sell_form::__construct() must be an instance of 
AppBundle\Entity\Types, array given, called in 
C...\OldController.php 
on line 122 and defined` 

很多感谢

错误inisialize从数据库中$猫变量控制器
+0

你的代码期望通过'AppBundle \ Entity \ Types'实例,但是你传递了它们的一个数组。在'sell_form'构造函数中更改typehint。 –

+0

**非常感谢你@MateuszSip的帮助**博特能否请澄清更多? –

$catAppBundle\Entity\Types实例的数组。要将其传递到形式的构造函数:

public function __construct (Types $cat) 
{ 
    $this->cat = $cat; 
} 

这时你的代码期望$cat是单Types实例,因此它崩溃:

的appbundle \表格\ sell_form :: __结构()必须是的 的appbundle \实体\类型的实例,数组给定

你需要想到一个数组:

public function __construct (array $cat) 
{ 
    $this->cat = $cat; 
}