/** * @param Resource $resource * @param null $title * @param null $color * @return mixed */ public static function createWithPages(array $data, $title = null, $color = '#31b0d5') { $resource = Resource::create($data); if (!$title) { $title = $resource->title; } $pages = PageRepository::createResourcePages($title, $resource->controller, null, 'layouts.admin', $color); Event::fire('admin.model.resourceRepository.createWithPages', array($resource, $pages)); return $pages; }
/** * @param Model $model * @param CrudController $controller */ public function onSaved(Model $model, CrudController $controller) { // We are only interested in a resource controller if (!$controller instanceof ResourceController) { return; } // Start up the generator $generator = App::make('Boyhagemann\\Crud\\ControllerGenerator'); $generator->setClassName($model->controller); $generator->setModelClass(str_replace('Resource', '', $model->controller)); // Determine the file name $filename = $model->path . '/' . str_replace('\\', '/', $model->controller) . '.php'; // Write the new controller file to the controller folder @mkdir(dirname($filename), 0755, true); file_put_contents($filename, $generator->generate()); // Create the resource pages $pages = PageRepository::createResourcePages($model->title, $model->controller); require_once $filename; // Get the newly create controller and get the modelBuilder // We need to trigger the model generate event so that the model is // actually generated $crud = App::make($model->controller); Event::fire('model.builder.generate', $crud->init('create')->getModelBuilder()); }