php – Laravel雄辩模范的领域
我是Laravel和雄辩的新人,所以请原谅我,如果这是一个完全愚蠢的问题.
我一直在研究如何在文档 here和另一个教程 here(在使用雄辩ORM部分创建模型)中创建模型,我注意到表中的实际字段从未被提及,除非有某些东西具体关于它们(例如与另一个表有关系,或者不需要大量分配,或者如果需要从JSON输出中隐藏) 这些字段是否在目的上被省略,PHP只是在使用FETCH_OBJ打开的PDO执行查询时添加它们? 如果实际需要,他们需要有什么访问级别? 谢谢.
雄辩模特中不需要列名(字段).如您所指出的,只需要定义确定模型与其他人的关系的函数.
由于您提到的原因(Laravel执行select *,然后将所有返回的行添加到模型对象作为公共属性),因此不需要包含它们.这是一个称为水合的过程,您可以通过挖掘Laravel来源来确切了解发生的情况.这是一个总结,发生了什么: >你调用(例如),Users :: find(123); 我省略了一些无关紧要的事情,如加载加载来简化进程,但这基本上是每个查询发生的情况. 你提出一个很好的一点,即事先知道这些领域对自动完成有帮助.由于setRawAttributes()的性质,您可以在模型中声明所有列名(字段)(只是确保它们是公共的).虽然(和你的理智),公约是省略它们.此类声明应留给migration files. 经过进一步检查后,事先申报田地是不行的.这是因为实际的属性值存储在$attributes属性中,然后由magic方法__get()访问.这里的麻烦在于,通过预先定义属性,您将在访问字段时阻止__get()被调用.因此,这不是一个选择. 但是,有ways to hint to editors (like PhpStorm) about the existence of properties without explicitly defining them. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |