【发布时间】:2020-09-02 17:04:39
【问题描述】:
假设我有一个查询,它获取一个带有 comment 模型的 post 模型。所以查询应该是这样的
Post::with(['comments'])->get();
现在,我想像这样实现 laravel 的悲观锁定
Post::with(['comments'])->sharedLock()->get();
它是否也会锁定评论表中的行?文档中提到,
共享锁可防止选定的行在事务提交之前被修改
文档提供了一个检索 1 个没有关系的模型实例的示例。所以我不清楚它是否适用于主要模型及其关系。
【问题讨论】:
-
我的直觉说可能不是,但我不确定。你也许可以做
Post::with(['comments' => function($query){ $query->sharedLock(); })->sharedLock()->get();,但我不能说我曾经以这种方式使用过悲观锁定。 -
有趣的拍摄! @蒂姆刘易斯
-
@TimLewis 可以证实您的假设。我刚刚在一个新的应用程序上对其进行了测试。
标签: laravel query-builder pessimistic-locking