public function postGenerator(Request $request)
{
$commandArg = [];
$commandArg['name'] = $request->crud_name;
if ($request->has('fields')) {
$fieldsArray = [];
$validationsArray = [];
$x = 0;
foreach ($request->fields as $field) {
if ($request->fields_required[$x] == 1) {
$validationsArray[] = $field;
}
$fieldsArray[] = $field . '#' . $request->fields_type[$x];
$x++;
}
$commandArg['--fields'] = implode(";", $fieldsArray);
}
if (!empty($validationsArray)) {
$commandArg['--validations'] = implode("#required;", $validationsArray) . "#required";
}
if ($request->has('route')) {
$commandArg['--route'] = $request->route;
}
if ($request->has('view_path')) {
$commandArg['--view-path'] = $request->view_path;
}
if ($request->has('controller_namespace')) {
$commandArg['--controller-namespace'] = $request->controller_namespace;
}
if ($request->has('model_namespace')) {
$commandArg['--model-namespace'] = $request->model_namespace;
}
if ($request->has('route_group')) {
$commandArg['--route-group'] = $request->route_group;
}
try {
Artisan::call('crud:generate', $commandArg);
$menus = json_decode(File::get(base_path('resources/laravel-admin/menus.json')));
$name = $commandArg['name'];
$routeName = $commandArg['--route-group'] ? $commandArg['--route-group'] . '/' . snake_case($name, '-') : snake_case($name, '-');
$menus->menus = array_map(function ($menu) use($name, $routeName) {
if ($menu->section == 'Modules') {
array_push($menu->items, (object) ['title' => $name, 'url' => '/' . $routeName]);
}
return $menu;
}, $menus->menus);
File::put(base_path('resources/laravel-admin/menus.json'), json_encode($menus));
Artisan::call('migrate');
} catch (\Exception $e) {
return Response::make($e->getMessage(), 500);
}
Session::flash('flash_message', 'Your CRUD has been generated. See on the menu.');
return redirect('admin/generator');
}