1
皆さん、私はSymfonyの新しいプロジェクトで作業しています。入力ファイルがあるときに編集ビューでいくつかの問題があります。製品、製品の価格が、空の写真の入力ファイルと入力価格の名で水和入力:SSYMFONYインスタンスを更新するための水和物のファイルタイプ
私は修正
マイFormBuilder
の存続の前に、この入力ファイルをhydaratするために行うことができますどのようにclass ProductEditType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name',TextType::class)
->add('price',TextType::class)
->add('Photo',PhotoType::class)
->add('enregistrer',SubmitType::class);
}
public function editProductAction($id, Request $request){
$product = new Product();
$repository=$this->getDoctrine()->getManager()->getRepository('MyProjectProductBundle:Product');
$product= $repository->find($id);
$form=$this->get('form.factory')->create(ProductEditType::class,$product);
if($request->isMethod('post') && $form->handleRequest($request)->isValid()){
$em=$this->getDoctrine()->getManager();
$em->persist($product);
$em->flush();
return $this->redirectToRoute('my_project_backoffice_product', array('id'=>$product->getId()));
}
return $this->render('MyProjectBackofficeBundle:Backoffice:editproduct.html.twig',array('form'=>$form->createView(),'product'=>$product));
}
フォトタイプ
class PhotoType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('file', FileType::class) ;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'MyProject\ProductBundle\Entity\Photo'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'myproject_productbundle_photo';
}
小枝が争うコントローラ
<div class="well">
{{ form_start(form) }}
<div class="container4_in">
\t <div class="gri4">
\t \t <div class="grid2">
\t \t <div class="form_elem_wrraper">
<div class="row_form">
{{ form_label(form.name, "Name ") }}
{# Génération de l'input. #}
{{ form_widget(form.name,{ 'attr': {'class' :'input', 'placeholder': "Entrez le nom de l'auteur"}}) }}
</div>
</div></div>
<div class="grid2">
\t \t <div class="form_elem_wrraper">
<div class="row_form">
{{ form_label(form.price, "Price ") }}
{# Génération de l'input. #}
{{ form_widget(form.price,{ 'attr': {'class' :'input', 'placeholder': "Entrez le nom de l'auteur"}}) }}
</div>
<div class="row_form">
{{ form_label(form.Photo, "Photo") }}
{# Génération de l'input. #}
{{ form_widget(form.Photo) }}
</div>
</div>
</div>
</div>
</div>
{# Pour le bouton, pas de label ni d'erreur, on affiche juste le widget #}
{{ form_widget(form.enregistrer,{'attr': {'class': 'btn_bleu btn_submit_form'}}) }}
{# Fermeture de la balise <form> du formulaire HTML #}
{{ form_end(form) }}
\t \t \t \t \t \t \t \t
\t \t \t \t \t \t \t </form>
wが、私は
わかりにくいので、コメントを改善してください。 –
申し訳ありませんが、データベースに既に保存されている製品の情報を更新するためのフォームがあり、ツリービューでは製品の名前で完成した入力名と製品の写真で完成した入力ファイルが必要です。あなたの例で私は本当にこの解決策が私の問題を解決するつもりならば、私はいつも入力ファイルが空になると思うか分からない –
はい、ファイル入力は常に空です。この入力を満たす理由は何ですか?あなたはそれを必要とすべきではありません。 –