单挑操作删除数据的时候不是走到每个的 destroy 方法,而是 公共的,怎么处理这个问题?
有什么问题?
@z-song 不好意思,没描述清楚我的意思。想知道为什么不优先 destroy 方法。如果要做处理怎么解决?
用新的 RowAction 的話,Form 的 deleteFiles() 不會被執行了。若 model 有檔案,得自己刪除了。
@mis3085 不是deleteFiles, 我是指控制器的destroy方法
這是同一件事,我只是說另外一個影響而已。
本來的執行順序是 Controller -> HasResourceActions@destory($id) -> Form@destory($id),然後 Form@deleteFiles() 會在這邊順便被執行。
改用 RowAction 後,這整段都跳過了,只會直接執行 $model->delete()。所以連表單的回調 $form->deleting() 跟 $form->deleted 也被跳過了。只能透過 Model Event/Observer 進行額外處理。
這是同一件事,我只是說另外一個影響而已。
本來的執行順序是 Controller -> HasResourceActions@destory($id) -> Form@destory($id),然後 Form@deleteFiles() 會在這邊順便被執行。
改用 RowAction 後,這整段都跳過了,只會直接執行 $model->delete()。所以連表單的回調 $form->deleting() 跟 $form->deleted 也被跳過了。只能透過 Model Event/Observer 進行額外處理。
大佬解决了吗,我的删除回调也失效了,没有执行
现在的做法是:
$actions->disableDelete();
// 然后自己自定义一个 删除 Action
@DavidNineRoc 您好?现在有更好的解决方案吗?
@wper 自定义删除 action
@DavidNineRoc thx
我是这样解决的。 #4151
Most helpful comment
這是同一件事,我只是說另外一個影響而已。
本來的執行順序是 Controller -> HasResourceActions@destory($id) -> Form@destory($id),然後 Form@deleteFiles() 會在這邊順便被執行。
改用 RowAction 後,這整段都跳過了,只會直接執行 $model->delete()。所以連表單的回調 $form->deleting() 跟 $form->deleted 也被跳過了。只能透過 Model Event/Observer 進行額外處理。