Laravel Livewire调用setPriority修改优先级后数据库未更新问题
问题核心
你只修改了Livewire组件公共属性$postSingle在内存中的属性值,没有执行Eloquent模型的持久化操作,因此变更不会同步到数据库。前端显示更新是因为Livewire的响应式渲染直接读取组件内存中的属性值,并没有重新查询数据库,刷新页面后数值就会恢复为数据库存储的原始值。
修复代码
修改setPriority方法,补充规则校验和持久化逻辑即可:
public function setPriority(Post $postSingle, $priority) { $this->authorize('update', $postSingle); $this->postSingle->priority = $priority; // 校验你预先定义的priority规则,不需要可删除 $this->validate(); // 将变更保存到数据库 $this->postSingle->save(); }
内容的提问来源于stack exchange,提问作者eskimo
相关产品推荐
相关产品推荐

