/**
  * @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;
 }
 public function boot()
 {
     /**
      *
      * Get all pages that are in the database. We can't be sure if there is a working database
      * connection, so put the code in a try/catch.
      *
      */
     try {
         foreach (Page::get() as $page) {
             PageRepository::createRoute($page);
         }
     } catch (PDOException $e) {
         /**
          * There is probably no database connection yet. We can't get the pages from
          * the database, so fall back to the original routes in Laravel.
          *
          */
     }
 }
 /**
  * @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());
 }
 /**
  * @param Model $model
  */
 protected function generatePages(Model $model)
 {
     // Determine the controller class name
     $controller = Str::studly($model->title) . 'Controller';
     // Use a layout
     $layout = 'layouts.default';
     $urlIndex = Str::slug($model->title);
     $aliasIndex = str_replace('.', '', $urlIndex);
     $urlShow = $urlIndex . '/{id}';
     $aliasShow = $urlIndex . '.show';
     $zone = 'content';
     $method = 'get';
     PageRepository::createWithContent($model->title, $urlIndex, $controller . '@index', $layout, $method, $aliasIndex);
     PageRepository::createWithContent($model->title, $urlShow, $controller . '@show', $layout, $method, $aliasShow);
     Block::create(array('title' => sprintf('List %s items', $model->title), 'controller' => $controller . '@index'));
     Block::create(array('title' => sprintf('Show %s', $model->title), 'controller' => $controller . '@show'));
 }