【发布时间】:2017-06-07 01:16:22
【问题描述】:
我正在尝试从数据库中获取数据并将其传递到表单的下拉列表中
这是我要从中获取数据的实体,特别是类型列
<?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;
这是保存表单的类型类,如您所见,我创建了一个基于我所做的一些 Internet cherche 的构造,构造器将传递的值添加到变量中,然后在 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
))
;
;
}
}
最后,这是我使用存储库函数从数据库中初始化 $cat 变量的控制器
/**
* @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`
提前致谢
【问题讨论】:
-
您的代码期望传递
AppBundle\Entity\Types实例,但您传递了它们的数组。更改sell_form构造函数中的类型提示。 -
非常感谢@MateuszSip 的帮助 Bot 你能澄清更多吗?
标签: php symfony-3.2