Laravel

Laravel Model的setRelation

2019-03-02  本文已影响0人  ankyliu

遇到一个需求,需要在模型外给模型加个字段,而不是在模型中定义(主要是用到了 Repository ,并且同时用到了缓存,直接用模型缓存会连同关联关系一起缓存,如果这时关联关系更新了,数据就不同步了)

起初最暴力方法直接

$video->user = $user_repository->getUser($user_id);

可以当video附加加 User,也可以拿到数据,
但当你需要对 Video 做 Save()时,就会发现,他把user当做字段来 Save,就报错了。

这个时候,setRelation用处就来了

$video->user = $user_repository->getUser($user_id);

这句换成

# 设置关联关系
$video->setRelation('user', $user_repository->getUser($user_id));

完美解决。

上一篇 下一篇

猜你喜欢

热点阅读