52 lines
1.2 KiB
PHP
52 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Repositories;
|
|
|
|
use App\Models\User as Model;
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Repositories\EloquentRepository;
|
|
use Illuminate\Support\Arr;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class User extends EloquentRepository
|
|
{
|
|
/**
|
|
* Model.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $eloquentClass = Model::class;
|
|
|
|
/**
|
|
* 新增记录.
|
|
*
|
|
* @param Form $form
|
|
* @return mixed
|
|
*/
|
|
public function store(Form $form)
|
|
{
|
|
$result = null;
|
|
|
|
DB::transaction(function () use ($form, &$result) {
|
|
$model = $this->model();
|
|
|
|
$updates = $form->updates();
|
|
|
|
[$relations, $relationKeyMap] = $this->getRelationInputs($model, $updates);
|
|
|
|
if ($relations) {
|
|
$updates = Arr::except($updates, array_keys($relationKeyMap));
|
|
}
|
|
|
|
// foreach ($updates as $column => $value) {
|
|
// $model->setAttribute($column, $value);
|
|
// }
|
|
$this->model = $model::create($updates);
|
|
|
|
$this->updateRelation($form, $model, $relations, $relationKeyMap);
|
|
});
|
|
|
|
return $this->model()->getKey();
|
|
}
|
|
}
|