Jestem nowy w Laravel i Eloquent, przepraszam, jeśli to jest całkowicie głupie pytanie. Od pewnego czasu sprawdzałem, jak utworzyć model zarówno w dokumentacji here, jak i w kolejnym samouczku here (w sekcji Tworzenie modeli przy użyciu wymownej sekcji ORM) i zauważyłem, że rzeczywiste pola tabeli nigdy nie są wymienione, chyba że istnieje coś specyficznego na ich temat (np. posiadanie relacji z inną tabelą lub niewymaganie masowego przypisania, lub jeśli muszą być ukryte przed wyjściem JSON itp.)Pola w wymownych modelach Laravel
Czy te pola zostały pominięte celowo, a PHP po prostu je dodaje, gdy wykonuje kwerendę za pomocą PDO z włączoną FETCH_OBJ
? Jeśli tak, dlaczego nie umieszczamy bezpośrednio pól w modelu? Czy nie pomaga nam wiedzieć, jakie mamy pola, a także IDE, takie jak PHPStorm, aby wyświetlić odpowiednie pola autouzupełniania?
Jeśli są one rzeczywiście wymagane, jaki poziom dostępu powinien mieć?
Dzięki.
Dziękujemy za szczegółową odpowiedź. Szkoda, że nie mogę użyć go w ten sam sposób do PDO 'fetchObject()' gdzie mogę określić nazwę klasy i to nawodża instancję mojej konkretnej klasy. W rzeczywistości używam PhpStorm i wydaje mi się, że podpowiedzi używające tagów phpdoc działają, więc jest to dobre obejście dla właściwej obsługi IDE. – jbx
Jeśli naprawdę chcesz tej funkcjonalności, możesz podklasować klasę 'Eloquent', która jest właściwie' Illuminate \ Database \ Eloquent \ Model', (spójrz w 'app/config/app.php' na tablicę aliasów i upewnij się, że ustaw alias 'Eloquent' na właściwy FQN dla twojej podrzędnej Eloquent) i zdefiniuj 'setRawAttributes()', aby zachowywał się w ten sposób, ale byłoby to prawdopodobnie bardziej skomplikowane niż użycie tagów phpdoc. –
Tak, stanie się to zbyt skomplikowane i wykracza poza zakres tego, co próbuję osiągnąć. Chcę tylko mieć rzeczy czyste i możliwe do utrzymania. Odejście zbyt odbiegające od standardowego sposobu może również doprowadzić mnie do sytuacji, w której nie będę w stanie wyszukiwać rozwiązań ani zadawać pytań tutaj. Znaczniki phpdoc wyglądają dobrze, są również przydatne do wskazania, jakie magiczne pola ma model, jeśli otwierają go przez mniej inteligentny edytor, na przykład Notepad ++ lub Vi. Dzięki za twój wgląd! – jbx