我正在尝试自定义 symfony - orocommerce 的“ updateAction ”客户,在尝试了很多之后,它在日志文件中抛出了这个错误消息:
未捕获的 PHP 异常 Doctrine\DBAL\Exception\TableNotFoundException:“执行时发生异常:
t1.pbs_approval_number AS pbs_approval_number_27, t1.business_name AS business_name_28, t1.australian_business_number AS australian_business_number_29, t1.business_phone_number AS business_phone_number_30, t1.fax_number AS fax_number_31, t1.pharmacy_owner_full_name AS pharmacy_owner_full_name_32, t1.ahpra_no AS ahpra_no_33, t1.group_name AS group_name_34, t1. group_contact_name AS group_contact_name_35, t1.group_contact_email AS group_contact_email_36, t1.group_contact_phone_number AS group_contact_phone_number_37, t1.customer_id AS customer_id_38, t1.owner_id AS owner_id_39, t1.website_id AS website_id_40, t1.organization_id AS organization_id_41 FROM oro_customer = user't. 带参数 [“94”]:australian_business_number AS australian_business_number_29, t1.business_phone_number AS business_phone_number_30, t1.fax_number AS fax_number_31, t1.pharmacy_owner_full_name AS pharmacy_owner_full_name_32, t1.ahpra_no AS ahpra_no_33, t1.group_name AS group_name_34, t1.group_contact_name AS group_contact_name_35, t1.group_contact_email AS group_contact_email_36, t1.group_contact_phone_number AS group_contact_phone_number_37, t1.customer_id AS customer_id_38, t1.owner_id AS owner_id_39, t1.website_id AS website_id_40, t1.organization_id AS organization_id_41 FROM oro_customer_user t1 WHERE t0.id = ?' 带参数 [“94”]:australian_business_number AS australian_business_number_29, t1.business_phone_number AS business_phone_number_30, t1.fax_number AS fax_number_31, t1.pharmacy_owner_full_name AS pharmacy_owner_full_name_32, t1.ahpra_no AS ahpra_no_33, t1.group_name AS group_name_34, t1.group_contact_name AS group_contact_name_35, t1.group_contact_email AS group_contact_email_36, t1.group_contact_phone_number AS group_contact_phone_number_37, t1.customer_id AS customer_id_38, t1.owner_id AS owner_id_39, t1.website_id AS website_id_40, t1.organization_id AS organization_id_41 FROM oro_customer_user t1 WHERE t0.id = ?' 带参数 [“94”]:t1.ahpra_no AS ahpra_no_33, t1.group_name AS group_name_34, t1.group_contact_name AS group_contact_name_35, t1.group_contact_email AS group_contact_email_36, t1.group_contact_phone_number AS group_contact_phone_number_37, t1.customer_id AS customer_id_38, _1.0_id AS_owner_id_39, tweb owner.id_39, organization_id AS organization_id_41 FROM oro_customer_user t1 WHERE t0.id = ?' 带参数 [“94”]:t1.ahpra_no AS ahpra_no_33, t1.group_name AS group_name_34, t1.group_contact_name AS group_contact_name_35, t1.group_contact_email AS group_contact_email_36, t1.group_contact_phone_number AS group_contact_phone_number_37, t1.customer_id AS customer_id_38, _1.0_id AS_owner_id_39, tweb owner.id_39, organization_id AS organization_id_41 FROM oro_customer_user t1 WHERE t0.id = ?' 带参数 [“94”]:身份证=?带参数 [“94”]:身份证=?带参数 [“94”]:
SQLSTATE [42P01]:未定义表:7 错误:缺少表“t0”第 1 行的 FROM 子句条目:...rganization_id_41 FROM oro_customer_user t1 WHERE t0.id = '9
可以这样写:
SELECT * FROM oro_customer_user t1 WHERE t0.id = 94
在搜索了这个之后,似乎我没有以正确的方式扩展实体,所以我可以知道该怎么做吗?
这是我的代码:
MyCode\Bundle\CustomerBundle\Controller\CustomerUserController
<?php
namespace MyCode\Bundle\CustomerBundle\Controller;
use Oro\Bundle\CustomerBundle\Entity\CustomerUser;
use MyCode\Bundle\CustomerBundle\Entity\CustomerUser as MyCodeCustomerUser;
use Oro\Bundle\CustomerBundle\Form\Handler\CustomerUserHandler;
use Oro\Bundle\CustomerBundle\Form\Type\CustomerUserType;
use MyCode\Bundle\CustomerBundle\Form\Type\CustomerUserType as MyCodeCustomerUserType;
use Oro\Bundle\EntityBundle\ORM\DoctrineHelper;
use Oro\Bundle\SecurityBundle\Annotation\Acl;
use Oro\Bundle\SecurityBundle\Annotation\AclAncestor;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Oro\Bundle\CustomerBundle\Controller\CustomerUserController as OroCustomerUserController;
use Doctrine\ORM\EntityManager;
use Psr\Log\LoggerInterface;
class CustomerUserController extends Controller
{
/**
* Edit customer user form
*
* @Route("/update/{id}", name="oro_customer_customer_user_update", requirements={"id"="\d+"})
* @Template
* @Acl(
* id="oro_customer_customer_user_update",
* type="entity",
* class="MyCodeCustomerBundle:CustomerUser",
* permission="EDIT"
* )
* @param MyCodeCustomerUser $customerUser
* @param Request $request
* @return array|RedirectResponse
*/
public function updateAction(MyCodeCustomerUser $customerUser, Request $request)
{
die('1');
return $this->MyCodeUpdate($customerUser, $request);
}
/**
* @param MyCodeCustomerUser $customerUser
* @param Request $request
* @return array|RedirectResponse
*/
protected function MyCodeUpdate(MyCodeCustomerUser $customerUser, Request $request)
{
$form = $this->createForm(MyCodeCustomerUserType::class, $customerUser);
$handler = new CustomerUserHandler(
$form,
$request,
$this->get('oro_customer_user.manager'),
$this->get('oro_security.token_accessor'),
$this->get('translator'),
$this->get('logger')
);
$result = $this->get('oro_form.model.update_handler')->handleUpdate(
$customerUser,
$form,
function (MyCodeCustomerUser $customerUser) {
return [
'route' => 'mycode_customer_customer_user_update',
'parameters' => ['id' => $customerUser->getId()]
];
},
function (MyCodeCustomerUser $customerUser) {
return [
'route' => 'oro_customer_customer_user_view',
'parameters' => ['id' => $customerUser->getId()]
];
},
$this->get('translator')->trans('oro.customer.controller.customeruser.saved.message'),
$handler
);
return $result;
}
MyCode\Bundle\CustomerBundle\Entity\CustomerUser
<?php
namespace MyCode\Bundle\CustomerBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Mapping as ORM;
use Oro\Bundle\CustomerBundle\Model\ExtendCustomerUser;
use Oro\Bundle\EmailBundle\Model\EmailHolderInterface;
use Oro\Bundle\EntityConfigBundle\Metadata\Annotation\Config;
use Oro\Bundle\EntityConfigBundle\Metadata\Annotation\ConfigField;
use Oro\Bundle\LocaleBundle\Model\FullNameInterface;
use Oro\Bundle\OrganizationBundle\Entity\Organization;
use Oro\Bundle\UserBundle\Entity\AbstractUser;
use Oro\Bundle\UserBundle\Entity\User;
use Oro\Bundle\UserBundle\Security\AdvancedApiUserInterface;
use Oro\Bundle\WebsiteBundle\Entity\Website;
use Oro\Bundle\CustomerBundle\Entity\CustomerUser as OroCustomerUser;
/**
* The entity that represents a person who acts on behalf of the company
* to buy products using OroCommerce store frontend.
*
* @ORM\Entity()
* @ORM\Table(name="oro_customer_user")
*/
class CustomerUser extends OroCustomerUser
{
/**
* @ORM\Column(name="pharmacy_name", type="string", nullable=true)
*/
private $pharmacy_name;
/**
* @ORM\Column(name="pharmacy_address", type="string", nullable=true)
*/
private $pharmacy_address;
/**
* @ORM\Column(name="pbs_approval_number", type="string", nullable=true)
*/
private $pbs_approval_number;
/**
* @ORM\Column(name="business_name", type="string", nullable=true)
*/
private $business_name;
/**
* @ORM\Column(name="australian_business_number", type="string", nullable=true)
*/
private $australian_business_number;
/**
* @ORM\Column(name="business_phone_number", type="string", nullable=true)
*/
private $business_phone_number;
/**
* @ORM\Column(name="fax_number", type="string", nullable=true)
*/
private $fax_number;
/**
* @ORM\Column(name="pharmacy_owner_full_name", type="string", nullable=true)
*/
private $pharmacy_owner_full_name;
/**
* @ORM\Column(name="ahpra_no", type="string", nullable=true)
*/
private $ahpra_no;
/**
* @ORM\Column(name="group_name", type="string", nullable=true)
*/
private $group_name;
/**
* @ORM\Column(name="group_contact_name", type="string", nullable=true)
*/
private $group_contact_name;
/**
* @ORM\Column(name="group_contact_email", type="string", nullable=true)
*/
private $group_contact_email;
/**
* @ORM\Column(name="group_contact_phone_number", type="string", nullable=true)
*/
private $group_contact_phone_number;
/**
* {@inheritdoc}
*/
public function __construct()
{
parent::__construct();
}
请帮忙,谢谢。