public function save($modelName, $id = false)
{
$config = app('itemconfig');
$fieldFactory = app('admin_field_factory');
$actionFactory = app('admin_action_factory');
if (array_key_exists('form_request', $config->getOptions()) && $this->formRequestErrors !== null) {
return response()->json(array('success' => false, 'errors' => $this->formRequestErrors));
}
$save = $config->save($this->request, $fieldFactory->getEditFields(), $actionFactory->getActionPermissions(), $id);
if (is_string($save)) {
$save = implode('<br>', explode('. ', $save));
return response()->json(array('success' => false, 'errors' => $save));
} else {
//override the config options so that we can get the latest
app('admin_config_factory')->updateConfigOptions();
//grab the latest model data
$columnFactory = app('admin_column_factory');
$fields = $fieldFactory->getEditFields();
$model = $config->getModel($id, $fields, $columnFactory->getIncludedColumns($fields));
if ($model->exists) {
$model = $config->updateModel($model, $fieldFactory, $actionFactory);
}
return response()->json(array('success' => true, 'data' => $model->toArray()));
}
}