在 OctoberCMS 中复制记录

Replicate record in OctoberCMS

我正在尝试创建一个函数,该函数将使用 laravel 'replicate' 方法复制现有记录。

这是我的内容,但它没有按预期工作。

updateContact.php

use Cms\Classes\ComponentBase;
use Input;
use Validator;
use Redirect;
use Itinify\Itinify\Models\Contact;
use Itinify\Itinify\Models\Organisation;
use Carbon\Carbon;

public function replicateRecord()
    {
        $contact = Contact::find($this->param('id'));

        $newContact = $contact->replicate();

        $newContact->created_at = Carbon::now();

        $newContact->save();

        return Redirect::to('/contacts/'.$newContact->id);

    }
default.htm

<div class="col-md-12">
            <form data-request="replicateRecord">
                <button aria-label="" class="btn btn-danger pull-right btn-lg btn-block" type="submit">Duplicate
                </button>
</form>
</div>

您需要将一个参数传递给函数($contact_id$request),以便控制器可以了解要复制哪个联系人。

确保数据库中的联系人 table 没有 UNIQUE 列。 如果有,要排除一个或多个属性被复制,您可以将一个数组传递给 replicate 方法:

$contact->replicate(['field']);

去掉这一行(当然不影响你的问题):

$newContact->created_at = Carbon::now(); // not necessary