Gil*_*ngy 0 php symfony sylius
我正在按照Sylius文档上的教程来自定义表单.
这是我有的:
src\AppBundle\Form\Extension\CustomerProfileTypeExtension.php:
<?php
namespace AppBundle\Form\Extension;
use Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
final class CustomerProfileTypeExtension extends AbstractTypeExtension
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options): void
{
// Adding new fields works just like in the parent form type.
$builder->add('contactHours', TextType::class, [
'required' => false,
'label' => 'app.form.customer.contact_hours',
]);
// To remove a field from a form simply call ->remove(`fieldName`).
// $builder->remove('gender');
// You can change the label by adding again the same field with a changed `label` parameter.
$builder->add('lastName', TextType::class, [
'label' => 'app.form.customer.surname',
]);
}
/**
* {@inheritdoc}
*/
public function getExtendedType(): string
{
return CustomerProfileType::class;
}
}
Run Code Online (Sandbox Code Playgroud)
src\AppBundle\Entity\Customer.php:
<?php
namespace AppBundle\Entity;
use Sylius\Component\Core\Model\Customer as BaseCustomer;
class Customer extends BaseCustomer
{
/**
* @var string|null
*/
private $contactHours;
/**
* @return string
*/
public function getContactHours(): ?string
{
return $this->contactHours;
}
/**
* @param string $contactHours
*/
public function setContactHours(?string $contactHours): void
{
$this->contactHours = $contactHours;
}
}
Run Code Online (Sandbox Code Playgroud)
AppBundle/Resources/config/services.yml:services:.... app.form.extension.type.customer_profile:class:AppBundle\Form\Extension\CustomerProfileTypeExtension tags: - {name:form.type_extension,extended_type:Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType}
应用程序\资源\ SyliusShopBundle \意见\帐户\ profileUpdate.html.twig
<div class="two fields">
<div class="field">{{ form_row(form.birthday) }}</div>
<div class="field">{{ form_row(form.contactHours) }}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
西利乌斯1.0.4.
我在lastname的标签中有"app.form.customer.surname"作为Expected.但我的领域"contactHours"没有出现......
任何的想法 ?我的"app\Resources\SyliusShopBundle\views\Account\profileUpdate.html.twig"好吗?
我刚刚发现我应该复制\vendor\sylius\sylius\src\Sylius\Bundle\AdminBundle\Resources\views\Customer\_form.html.twig到app\Resources\SyliusAdminBundle\views\Customer\_form.html.twig,然后根据我的需要修改它.
这是我修改过的代码:
app\Resources\SyliusAdminBundle\views\Customer\_form.html.twig:
....
<div class="ui segment">
<h4 class="ui dividing header">{{ 'sylius.ui.extra_information'|trans }}</h4>
{{ form_row(form.contactHours) }}
{{ form_row(form.birthday) }}
{{ form_row(form.phoneNumber) }}
{{ form_row(form.subscribedToNewsletter) }}
</div>
....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |