Не удалось определить тип доступа для свойства "атрибут"

Я сделал форму, чтобы заполнить свою базу данных без использования phpmyadmin. Но теперь у меня возникает проблема, когда я пытаюсь заполнить форму и надеюсь, что вы, ребята, можете мне помочь. Я получаю следующую ошибку:

Could not determine access type for property "bestelserie" in class "AppBundle\Entity\Artikel".

Мой код:

Контроллер по умолчанию:

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use AppBundle\Entity\Artikel;
use AppBundle\Form\Type\ArtikelType;


class DefaultController extends Controller
{
    /**
     * @Route("/", name = "homepage")
     */
    public function indexAction(Request $request)
    {
        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', [
            'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR,
        ]);
    }

    /** 
    * @Route ("/artikel/nieuw ", name = "artikelnieuw")
    */
    public function nieuweArtikel(Request $request){
        $nieuweArtikel = new Artikel();
        $form = $this->createForm(ArtikelType::class, $nieuweArtikel);

        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->persist($nieuweArtikel);
            $em->flush();
            return $this->redirect($this->generateurl("artikelnieuw"));
        }

        return new Response($this->render('form.html.twig', array('form' => $form->createView())));
    }
}

Юридическое лицо:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Artikel
 *
 * @ORM\Table(name = "artikel")
 * @ORM\Entity(repositoryClass = "AppBundle\Repository\ProductRepository")
 */
class Artikel
{
    /**
     * @var string
     *
     * @ORM\Column(name = "artikelnummer", type = "string", length=20, unique=true)
     * @ORM\Id
     */
    private $artikelnummer;

    /**
     * @var string
     *
     * @ORM\Column(name = "omschrijving", type = "string", length=255, nullable=true)
     */
    private $omschrijving;

    /**
     * @var string
     *
     * @ORM\Column(name = "specificaties", type = "string", length=255, nullable=true)
     */
    private $specificaties;

    /**
     * @var string
     *
     * @ORM\Column(name = "inkoopprijs", type = "string", length = 255, nullable=true)
     */
    private $magazijnlocatie;

    /**
     * @var integer
     *
     * @ORM\Column(name = "inkoopprijs", type = "20", length=255, nullable=true)
     */
    private $inkoopprijs;

    /**
     * @var string
     *
     * @ORM\Column(name = "vervangendeArtikel", type = "string", length=255, nullable=true)
     */
    private $vervangendeArtikel;

    /**
     * @var integer
     *
     * @ORM\Column(name = "minimumVoorraad", type = "integer", length=20, nullable=true)
     */
    private $minimumVoorraad;

    /**
     * @var integer
     *
     * @ORM\Column(name = "voorraadaantal", type = "integer", length=20, nullable=true)
     */
    private $voorraadaantal;

    /**
     * @var integer
     *
     * @ORM\Column(name = "bestelserie", type = "integer", length=20, nullable=true)
     */
    private $bestelserie;


    /**
     * Set artikelnummer
     *
     * @param string $artikelnummer
     *
     * @return Artikel
     */
    public function setArtikelnummer($artikelnummer)
    {
        $this->artikelnummer = $artikelnummer;

        return $this;
    }

    /**
     * Get artikelnummer
     *
     * @return string
     */
    public function getArtikelnummer()
    {
        return $this->artikelnummer;
    }

    /**
     * Set omschrijving
     *
     * @param string $omschrijving
     *
     * @return Artikel
     */
    public function setOmschrijving($omschrijving)
    {
        $this->omschrijving = $omschrijving;

        return $this;
    }

    /**
     * Get omschrijving
     *
     * @return string
     */
    public function getOmschrijving()
    {
        return $this->omschrijving;
    }

    /**
     * Set specificaties
     *
     * @param string $specificaties
     *
     * @return Artikel
     */
    public function setSpecificaties($specificaties)
    {
        $this->specificaties = $specificaties;

        return $this;
    }

    /**
     * Get specificaties
     *
     * @return string
     */
    public function getSpecificaties()
    {
        return $this->specificaties;
    }

    /**
     * Set magazijnlocatie
     *
     * @param string $magazijnlocatie
     *
     * @return Artikel
     */
    public function setMagazijnlocatie($magazijnlocatie)
    {
        $this->magazijnlocatie = $magazijnlocatie;

        return $this;
    }

    /**
     * Get magazijnlocatie
     *
     * @return string
     */
    public function getMagazijnlocatie()
    {
        return $this->magazijnlocatie;
    }

    /**
     * Set inkoopprijs
     *
     * @param integer $inkoopprijs
     *
     * @return Artikel
     */
    public function setInkoopprijs($inkoopprijs)
    {
        $this->inkoopprijs = $inkoopprijs;

        return $this;
    }

    /**
     * Get inkoopprijs
     *
     * @return integer
     */
    public function getInkoopprijs()
    {
        return $this->inkoopprijs;
    }

    /**
     * Set vervangendeArtikel
     *
     * @param string $vervangendeArtikel
     *
     * @return Artikel
     */
    public function setVervangendeartikel($vervangendeArtikel)
    {
        $this->vervangendeArtikel = $vervangendeArtikel;

        return $this;
    }

    /**
     * Get vervangendeArtikel
     *
     * @return string
     */
    public function getVervangendeartikel()
    {
        return $this->vervangendeArtikel;
    }

     /**
     * Set minimumVoorraad
     *
     * @param integer $minimumVoorraad
     *
     * @return Artikel
     */
    public function setMinimumvoorraad($minimumVoorraad)
    {
        $this->minimumVoorraad = $minimumVoorraad;

        return $this;
    }

    /**
     * Get minimumVoorraad
     *
     * @return integer
     */
    public function getMinimumvoorraad()
    {
        return $this->minimumVoorraad;
    }

     /**
     * Set voorraadaantal
     *
     * @param integer $voorraadaantal
     *
     * @return Artikel
     */
    public function setVoorraadaantal($voorraadaantal)
    {
        $this->voorraadaantal = $voorraadaantal;

        return $this;
    }

    /**
     * Get voorraadaantal
     *
     * @return integer
     */
    public function getVoorraadaantal()
    {
        return $this->voorraadaantal;
    }

     /**
     * Set bestelserie
     *
     * @param integer $bestelserie
     *
     * @return Artikel
     */
    public function setBestelserie()
    {
        if ($this->minimumVoorraad > $this->voorraadaantal){
            $benodigdeVoorraad = $this->minimumVoorraad - $this->voorraadaantal;
            return $this->bestelserie + $benodigdeVoorraad;
        }
        else {
            return $this->bestelserie;
        }
    }

    /**
     * Get bestelserie
     *
     * @return integer
     */
    public function getBestelserie()
    {
        return $this->bestelserie;
    }
}

Форма:

<?php
namespace AppBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;

//vul aan als je andere invoerveld-typen wilt gebruiken in je formulier
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

//EntiteitType vervangen door b.v. KlantType
class ArtikelType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        //gebruiken wat je nodig hebt, de id hoeft er niet bij als deze auto increment is
        $builder
            ->add('artikelnummer', TextType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('omschrijving', TextType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('specificaties', TextType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('magazijnlocatie', TextType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('inkoopprijs', IntegerType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('vervangendeArtikel', TextType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('minimumVoorraad', IntegerType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('voorraadaantal', IntegerType::class) //naam is b.v. een attribuut of variabele van klant
        ;
        $builder
            ->add('bestelserie', IntegerType::class) //naam is b.v. een attribuut of variabele van klant
        ;



        //zie
        //http://symfony.com/doc/current/forms.html#built-in-field-types
        //voor meer typen invoer
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundle\Entity\Artikel', //Entiteit vervangen door b.v. Klant
        ));
    }
}

?>

Не удалось определить тип доступа для свойства &quot;атрибут&quot;

Заранее спасибо.

Добавьте в свой вопрос полную трассировку стека ошибок, чтобы мы могли увидеть, какой код вызывает эту ошибку.

A.L 10.05.2018 17:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
201
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что проблема может заключаться в объявлении установщика для свойства bestelserie. Фактически ваша функция не принимает никаких аргументов

public function setBestelserie()
{
    ...
}

в то время как функция установки должна принимать аргумент и устанавливать его как значение свойства

public function setBestelserie($bestelserie)
{
    ...
    $this->bestelserie = $bestelserie;
}

в противном случае ваша форма не сможет установить для него значение.

Другие вопросы по теме