public function store($tableName, Request $request) { $this->validate($request, packageConfig('validationRules.' . $tableName)); $data = $this->parseInputData($request); if (\Schema::hasColumn($tableName, 'created_at')) { $data['created_at'] = \Carbon\Carbon::now(); $data['updated_at'] = $data['created_at']; } $hasMany = null; if (@$data['hasMany']) { $hasMany = $data['hasMany']; unset($data['hasMany']); } $belongsToMany = null; if (@$data['belongsToMany']) { $belongsToMany = $data['belongsToMany']; unset($data['belongsToMany']); } $model = "App\\Models\\" . Str::studly(Str::singular($tableName)); if (class_exists($model)) { $new = $model::create($data); $id = $new->id; } else { $id = \DB::table($tableName)->insertGetId($data); } if ($hasMany) { $form = $this->getForm($tableName); foreach ($hasMany as $table => $ids) { $model = "App\\Models\\" . Str::studly(Str::singular($table)); if (class_exists($model)) { $model::whereIn('id', $ids)->get()->each(function ($item, $key) use($options, $id) { $item::update([$form['hasMany'][$table]['column'] => $id]); }); } else { \DB::table($table)->whereIn('id', $ids)->update([$form['hasMany'][$table]['column'] => $id]); } } } if ($belongsToMany) { $form = $this->getForm($tableName); foreach ($belongsToMany as $table => $ids) { foreach ($ids as $pivotId) { $model = "App\\Models\\" . Str::studly(Str::singular($form['belongsToMany'][$table]['table'])); if (class_exists($model)) { $model::create([$form['belongsToMany'][$table]['column'] => $id, $form['belongsToMany'][$table]['foreignLabel'] => $pivotId]); } else { \DB::table($form['belongsToMany'][$table]['table'])->insert([$form['belongsToMany'][$table]['column'] => $id, $form['belongsToMany'][$table]['foreignLabel'] => $pivotId]); } } } } return redirect(packageConfig('prefix') . '/' . $tableName); }
public function store($tableName, Request $request) { $this->validate($request, packageConfig('validationRules.' . $tableName)); $data = $this->parseInputData($request); if (\Schema::hasColumn($tableName, 'created_at')) { $data['created_at'] = \Carbon\Carbon::now(); $data['updated_at'] = $data['created_at']; } $hasMany = null; if (@$data['hasMany']) { $hasMany = $data['hasMany']; unset($data['hasMany']); } $id = \DB::table($tableName)->insertGetId($data); if ($hasMany) { $form = $this->getForm($tableName); foreach ($hasMany as $table => $ids) { \DB::table($table)->whereIn('id', $ids)->update([$form['hasMany'][$table]['column'] => $id]); } } return redirect(packageConfig('prefix') . '/' . $tableName); }
<?php $prefix = packageConfig('prefix'); Route::get($prefix . '/{modelName}', 'VivifyIdeas\\AdminPanelGenerator\\Http\\Controllers\\MainController@index'); Route::get($prefix . '/{modelName}/create', 'VivifyIdeas\\AdminPanelGenerator\\Http\\Controllers\\MainController@create'); Route::get($prefix . '/{modelName}/edit/{id}', 'VivifyIdeas\\AdminPanelGenerator\\Http\\Controllers\\MainController@edit'); Route::put($prefix . '/{modelName}/{id}', 'VivifyIdeas\\AdminPanelGenerator\\Http\\Controllers\\MainController@update'); Route::post($prefix . '/{modelName}', 'VivifyIdeas\\AdminPanelGenerator\\Http\\Controllers\\MainController@store'); Route::get($prefix . '/{modelName}/delete/{id}', 'VivifyIdeas\\AdminPanelGenerator\\Http\\Controllers\\MainController@delete');
public function __construct() { $this->middleware(packageConfig('authMiddleware')); }