Вызов функции-члена guessExtension () со значением NULL - PullRequest
0 голосов
/ 21 февраля 2019

это дает ошибку, которую я написал в заголовке.Я использовал этот же код раньше, но сейчас я не работаю.Я думаю, что я не получаю "идентификатор", но я не знаю почему.если я раскомментирую эти строки комментариев на контроллере, он открывает окно добавления фотографий и позволяет мне выбрать фотографию, но после нажатия кнопки «Отправить» он не загружается.Пожалуйста, ребята, мне действительно нужна ваша помощь.есть идеи?Я видел такой же erorr на stackoverflow, но это решение не сработало для меня

***** Это мой контроллер *****

/**
     * @Route("/{id}/fotoekle", name="duyurular_fotoekle", methods={"GET","POST"})
     */
    public function fotoekle(Request $request, $id, Duyurular $duyurular): Response
    {
        $form = $this->createForm(DuyurularType::class, $duyurular);
        $form->handleRequest($request);
        echo ('sefa');
       // if ($form->isSubmitted() && $form->isValid()) {
            echo ('sefa2');
            $file = $request->files->get('image');
            $fileName = $this->generateUniqueFileName().'.'.$file->guessExtension();
  //          dump($request);
    //        die();
            // $file = $duyurular->getFotograf();
            // $file = $form->get('fotograf')->getData();

            try{
                $file->move(
                    $this->getParameter('fotograflar_directory'),
                    $fileName
                );
            }catch (FileException $e){
            }
            $duyurular->setFotograf($fileName);
            $this->getDoctrine()->getManager()->flush();
            return $this->redirectToRoute('duyurular_fotoekle', ['id' => $duyurular->getId(),]);
//        }
//        return $this->render('duyurular/fotoekle.html.twig', [
//            'duyurular' => $duyurular,
//            'form' => $form->createView(),
//            'id' => $duyurular->getId(),
//        ]);
    }

Этомой файл .html.twig / код формы

{% block body %}
    <h1>{{ duyurular.baslik }}</h1>
    <form action="{{ path('duyurular_fotoekle',{'id':id}) }}" method="post" enctype="multipart/form-data">
        Select image to upload:
        <input name="duyuruid" value="{{ id }}" type="number" readonly>
        <input type="file" name="image" id="fileToUpload">
        <input type="submit" value="Upload Image" name="submit">
    </form>
    {% if duyurular.fotograf != null %}
       <img src="{{ asset('yuklenen') }}/fotograflar/{{ duyurular.fotograf }}" height="100">
    {% endif %}
{% endblock %}

1 Ответ

0 голосов
/ 21 февраля 2019

Мне пришлось изменить контроллер.Я добавил еще одну функцию под названием «iedit», чем в iedit.html.twig, которую я назвал «duyurular_fotoekle».Если вы не понимаете, что я сделал, не стесняйтесь спрашивать.

/**
     * @Route("/{id}/fotoekle", name="duyurular_fotoekle", methods={"POST"})
     */
    public function fotoekle(Request $request, Duyurular $duyurular, $id): \Symfony\Component\HttpFoundation\RedirectResponse
    {
        $form = $this->createForm(DuyurularType::class, $duyurular);
        $form->handleRequest($request);
        echo ('sefa 2');
        $file = $request->files->get('image');
        // $file = $duyurular->getFotograf();
        // $file = $form->get('fotograf')->getData();
        $fileName = $this->generateUniqueFileName().'.'.$file->guessExtension();
        try{
            $file->move(
                $this->getParameter('fotograflar_directory'),
                $fileName
            );
        }catch (FileException $e){
        }
        $duyurular->setFotograf($fileName);
        $this->getDoctrine()->getManager()->flush();
        return $this->redirectToRoute('duyurular_iedit', ['id' => $duyurular->getId(),]);
    }

    /**
     * @Route("/{id}/iedit", name="duyurular_iedit", methods="GET|POST")
     */
    public function iedit(Request $request,$id, Duyurular $duyurular,DuyurularRepository $duyurularRepository): Response
    {
        $duyurulist = $duyurularRepository ->findAll();
        $duyuruname = $duyurularRepository ->findBy(['id'=> $duyurular->getId()]);
        $form = $this->createForm(DuyurularType::class, $duyurular);
        $form->handleRequest($request);

        echo ('sefa 0');
        $this->getDoctrine()->getManager()->flush();
        if ($form->isSubmitted()) {

            echo ('sefa 1');
            return $this->redirectToRoute('duyurular_index', ['id' => $duyurular->getId()]);
        }

        return $this->render('duyurular/iedit.html.twig', [
            'duyurular' => $duyurular,
            'id'=>$id,
            'duyurulist' => $duyurulist,
            'duyuruname' => $duyuruname,
            'form' => $form->createView(),
        ]);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...