如何解决如何覆盖laravel背包的批量克隆功能
我正在尝试覆盖批量克隆功能。 我只想克隆一些值,其余的分配一个静态值。例如,我只想克隆 name 和 description 值,以及我想为其分配当前日期的日期。 好吧,我不知道该怎么做。
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation { bulkClone as traitBulkClone; }
public function bulkClone($id) {
// your custom code here
$this->traitBulkClone($id);
}
解决方法
TLDR:最有效的方法可能是覆盖模型上的 replicate()
方法。请注意,它不是 Backpack 方法,而是 Eloquent 方法,{{1} } 用于复制特定条目。
为什么?
Inside the BulkCloneOperation
,您会注意到路由调用了 BulkCloneOperation
方法,它本身只是对模型上的 bulkClone()
方法进行了一些调用。这意味着您有两个选项可以覆盖此行为:
(选项 A)。覆盖 CrudController 中的 replicate()
方法。这将仅覆盖该特定管理员操作的行为。
(选项 B)。覆盖模型中的 bulkClone()
方法。这样,无论何时调用 replicate()
(由您的管理面板或软件的任何其他部分),复制都会按照您指定的方式完成。
在大多数情况下,我认为选项 B 更合适,因为它可以避免未来的代码重复。这是 Laravel 目前的 replicate()
方法,如果您问我,只需将其复制粘贴到您的模型中并对其进行修改以满足您的需要是最好的解决方案:
replicate()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。