No właśnie trochę się zgubiłem, ponieważ tak
mamy pierwszy byt/jednostkę/klasę(enitity) o nazwie Article
które ma atrybuty takie jak
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
private $title;
/**
* @var string
*
* @ORM\Column(name="content", type="text")
*/
private $content;
teraz tak wskazanie połączenia naszych jednostek ( myśląc jak o bycie tabeli ) czy klas, patrząc jak na język obiektowy
jest to
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="articles")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
Dlatego mam pytanie czym jest to $category, czy jest to jednocześnie polem tabeli czy tylko abstrakcyjną reprezentacją połączeń dwóch relacji relacji
jak wskazuje komentarz, nie ma tam przecież wskazanego typu pola jak w poprzednich jest tylko wskanie na relację wiele do jednego i wskazane klasy/byty
i wskazanie na atrybut klasy łączonej czyli articles. Dalej jest łączenie kolumny i tego właśnie nie rozumiem dlaczego jest tam napisane category_id skoro w Category jest już tylko id
a w Article nie ma takiego atrybuty jak category_id ( w sumie powinno coś takiego być oczywiście ), natomiast reference column to jasne że id.
Teraz Article
/**
* @ORM\OneToMany(targetEntity="Article", mappedBy="category")
*/
protected $articles;
Tu jest jasne wszystko po prostu wskazanie referencji dla odwrotnego działania choć nie rozumiem dlaczego nie ma wskazania konkretnego atrybutu, rozumiem, że może działać tutaj
silnik ale dlaczego w tamtym przypadku było inaczej ?
Kolejne pytanie co to jest
/**
* Add articles
*
* @param \AppBundle\Entity\Article $articles
* @return Category
*/
public function addArticle(\AppBundle\Entity\Article $articles)
{
$this->articles[] = $articles;
return $this;
}
Hmm, myślę sobie, że jest to jakieś przeładowanie innej metody gdzieś w silniku doctrine ale nie jestem pewien. Drugie pytanie co to jest articles[] i gdzie jest deklaracja
tej tablicy w klasie ? Jest tam w opisie dla dctrine opisane, że zwracane jest Category, ale przyznam, że jakoś nie rozumiem.
Czy może mi ktoś to jakoś opisać ? Przyznam, że staram się to zrozumieć ale być może ten framework jest dla mnie zbyt zawiły, przyznaje, że uczyłem się na innych językach
przyznam zdecydowanie prostszych frameworkach, a chciałbym cholera to zrozumieć i umieć odnieść się do elementów w mojej pamięc na zasadzie zrozumienia danego problemu.
Z góry dziękuje Wam za pomoc, zdaje sobie sprawę, że są tu już jacyś wyjadacze tylko nie wiem czy chętnie podzielą się wiedzą, a ja muszę powiedzieć, że niestety nie mam tyle
czasu aby zjeść na tym swoje zęby.
Panowie prośbą o jakieś wyjaśnienie sensowne. Chętnie się zrewanżuje ! Akurat mam takki projekt i chciałbym szybko jakąś wiedzę zyskać.
Dzięki i Pozdrawiam
P.