View more context

 

nightjarnz

the better equivalent for what you're trying to achieve with the first call is MyDataObject::create()->update(['Field' => 'Value'])

nightjarnz

of course, this is a little nitpicky, because if you're creating a brand new object, then there's no ID which means isInDatabase is false, meaning a write happens and folks are generally none the wiser.

nightjarnz

But this is certainly a gotcha I've run into before (a long time ago, but it's a lasting memory, which still holds true).

👍 (1)
nightjarnz

In terms of strong preference over update(...) or ->Field = ..., no I don't think there is one.

🤔 (1)
nightjarnz

I tend to prefer the former for brevity in calls. But it depends on how much you're trying to update at once really.

jakx

I lean towards the former too, to me it feels more elegant and somehow more SS "flavoured"

👍 (1)
nightjarnz

The wierd thing with the latter is that they're not actually properties too, which can (but not always) cause e.g. phpstan in vscode to underline all the things

😅 (1)
theruss

I tend to go for the former, but if I needed to do something similar to the latter, I prefer use of the setField() method. But you need to watch out that this also sets has_one's as well

😯 (1)
jkersu

Im curious, can you chain a write() directly after the update?