在 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
我正在尝试创建一个函数,该函数将使用 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