【发布时间】:2015-12-09 14:07:26
【问题描述】:
由于我在使用 symfony 2.7 版时遇到的问题(安装项目后立即出现 404 页面错误),我开始使用 Symfony 3.0 版。在一些小问题之后,我发现“app/console”被“bin/console”取代。所以我现在正在开发一个新项目,并且我已经构建了一个包含 1 个实体的新包
Codeit/RestaurantBundle && CodeitRestaurantBundle:Reserveren
格式是注解,实体有一个id和1个字段,叫做"naam" (string, 255)。我更新了模式,生成了 Codeit 的实体,在成功完成之后,我生成了一个带有写入操作的 crud。格式还是 annotation 并且 前缀是 /reserveren。
因此,如果我访问页面 web/reserveren,我将获得我的实体的显示页面。不幸的是,如果我尝试添加新条目,则会收到以下错误:
给定类型“字符串”、“Codeit\RestaurantBundle\Form\ReserverenType”的预期参数
我的 Bundle/Form/ReserverenType.php
<?php
namespace Codeit\RestaurantBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ReserverenType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('naam')
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Codeit\RestaurantBundle\Entity\Reserveren'
));
}
}
我的实体代码
<?php
namespace Codeit\RestaurantBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Reserveren
*
* @ORM\Table(name="reserveren")
* @ORM\Entity(repositoryClass="Codeit\RestaurantBundle\Repository\ReserverenRepository")
*/
class Reserveren
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="Naam", type="string", length=255)
*/
private $naam;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set naam
*
* @param string $naam
*
* @return Reserveren
*/
public function setNaam($naam)
{
$this->naam = $naam;
return $this;
}
/**
* Get naam
*
* @return string
*/
public function getNaam()
{
return $this->naam;
}
}
【问题讨论】:
标签: php formbuilder symfony