Я новичок в Laravel и Eloquent, поэтому извините меня, если это совершенно глупый вопрос. Я смотрел, как создать модель как на документации here, так и на другом учебнике here (в разделе «Создание моделей с использованием Eloquent ORM section»), и я заметил, что фактические поля таблицы никогда не упоминаются, если нет что-то конкретное о них (например, наличие отношений с другой таблицей или не требующее массового присвоения или если они должны быть скрыты от выхода JSON и т. д.)Поля в Laravel Eloquent модели
Эти поля опущены специально, а PHP просто добавляет их, когда он выполняет запрос с использованием PDO с включенным FETCH_OBJ
? Если да, то почему мы явно не помещаем поля в модель? Разве это не помогает нам узнать, какие поля у нас есть, а также IDE, такие как PHPStorm, чтобы открыть правильные поля автозаполнения?
Если они действительно необходимы, какой уровень доступа им нужен?
Спасибо.
Спасибо за подробный ответ. Жаль, что я не могу использовать его так же, как PDO 'fetchObject()', где я мог бы указать имя класса, и он увлажняет экземпляр моего конкретного класса. Я фактически использую PhpStorm, и кажется, что подсказки, использующие теги phpdoc, работают, поэтому это хороший способ обхода подходящей поддержки IDE. – jbx
Если вам действительно нужна эта функциональность, вы можете подклассифицировать класс «Eloquent», который на самом деле «Illuminate \ Database \ Eloquent \ Model», (посмотрите в 'app/config/app.php' для массива псевдонимов и убедитесь, что задайте псевдоним «Eloquent» правильному FQN для вашего подкласса Eloquent) и определите 'setRawAttributes()', чтобы вести себя так, но это, вероятно, будет более сложным, просто используя теги phpdoc. –
Да, это станет чрезмерно сложным и выходит за рамки того, чего я пытаюсь достичь. Я просто хочу, чтобы вещи были чистыми и поддерживаемыми. Отклонение слишком большого количества от стандартного способа может также поставить меня в ситуацию, когда я не буду искать решения или задавать вопросы здесь. Теги phpdoc кажутся прекрасными, они также полезны для указания того, какие волшебные поля у модели есть, если открыть ее через менее интеллектуальный редактор, например Notepad ++ или Vi. Спасибо за понимание! – jbx