我正在尝试在 PS 1.7.6.1 下构建一个模块。
在设计中,我在产品和预购之间存在多对一关系(许多预购可以与一个产品相关联)。
Preorder 对象是一个 ORM 实体:
//mymodule/src/Entity
class Preorder
{
/**
* @var int
*
* @ORM\Id
* @ORM\Column(name="id_preorder", type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var int
*
* @ORM\Column(name="id_product", type="integer")
*/
private $productId;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=64)
*/
private $email;
setter and getter
}
在控制器中:
//src/mymodule/src/Controller
use Doctrine\DBAL\Types\TextType;
use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController;
use Doctrine\ORM\EntityManagerInterface;
use MyModule\Entity\Preoder;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\HttpFoundation\Request;
use Product;
class PreorderController extends FrameworkBundleAdminController
{
public function createAction(Request $request){
$preorder = new Preorder();
$preorderForm = $this->createFormBuilder($preorder)
->add('email', EmailType::class)
->add('productId', EntityType::class, [
'class' => Product::class,
])
->getForm();
$bookingForm->handleRequest($request);
// validate and persist
}}
问题是表单构建器无法识别 Product 实体。它抛出一个运行时异常:
“产品”类似乎不是托管的 Doctrine 实体。你忘了映射它吗?
我在核心文件中找不到处理这种情况的示例。非常感谢您提前指导/帮助我解决此问题。
qq_笑_17