这是一个假设的问题,我只想听听一些意见。有人问过类似的问题,但我认为答案不是很清楚/令人满意。
所以,让我们说我有一个支付一些人的功能。这些个体被组合在一个找到的对象中,该对象是从查询到数据库中创建的。
对于这个功能,我有两个选择。 我可以
或者我可以
这是否涉及到最佳实践?将数据对象从控制器传递到模型是否比简单地调用id需要更多内存/更慢?
答案 0 :(得分:1)
我想说这取决于。如果您只使用ID,因为您可以使用PDO或直接sql轻松操作数据库而不需要模型,那么是的,内存更快,更低。
如果您需要该模型,因为您在afterSave()
或其他地方有其他逻辑或者已经加载了模型,因为您从它们中重新获取了ID,那么最好通过沿着imho的模特。这些是php对象,并且总是通过引用传递,因此它们不会消耗额外的内存。
另一件事是,有时在模型数组的循环中创建$model->save()
比手动设置更复杂的sql查询更容易。另外,你会放松模型事件,这可能也是一个问题。