【问题标题】:how to use backpack clone feature for unique field form如何将背包克隆功能用于独特的字段形式
【发布时间】:2020-04-08 00:17:12
【问题描述】:

Backpack Crud 具有克隆功能。但是当我们的表具有唯一的字段列时,它就不起作用了。 Backpack clone Documentation 当表有唯一列时如何克隆它?

public function clone($id)
    {
        $this->crud->hasAccessOrFail('clone');
        $this->crud->setOperation('clone');

        $clonedEntry = $this->crud->model->findOrFail($id)->replicate();

        return (string) $clonedEntry->push();
    }

【问题讨论】:

  • 你能提供一个你尝试过但失败的示例代码吗?
  • @AhmetOZKESEK 我在提到的文档中使用了同样的东西。我在问题中包含了代码。

标签: laravel-backpack


【解决方案1】:

最近我遇到了同样的问题。这是我的解决方案:

public function clone($id)
{
    $this->crud->hasAccessOrFail('clone');
    $this->crud->setOperation('clone');

    $clonedEntry = $this->crud->model->findOrFail($id)->replicate();

    // now resolve the value for unique attribute before save. e.g.
    $slug = Str::slug($clonedEntry->name, '-');
    $count = $this->crud->model->whereRaw("slug RLIKE '^{$slug}(-[0-9]+)?$'")->count();
    $clonedEntry->slug = $count ? "{$slug}-{$count}" : $slug;

    // when you are done, save changes
    return (string) $clonedEntry->push();
}

您没有指定任何关于“唯一”属性的内容。随意根据您的需要自定义解析器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-22
    • 2021-03-28
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多