public function store(Collection $collection, Request $request)
 {
     $this->validate($request, $this->rules);
     $poem = new Poem($request->all());
     $collection->poems()->save($poem);
     return redirect()->route('dashboard.collection.poem.show', [$collection, $poem]);
 }
 public function store(Request $request)
 {
     $this->validate($request, $this->rules);
     $collection = new Collection($request->all());
     $collection->save();
     return redirect()->route('dashboard.collection.index');
 }
 public function search($input, $getResults = true)
 {
     $query = Collection::query();
     $columns = Schema::getColumnListing('collections');
     $attributes = array();
     foreach ($columns as $attribute) {
         if (isset($input[$attribute]) and !empty($input[$attribute])) {
             $query->where($attribute, $input[$attribute]);
             $attributes[$attribute] = $input[$attribute];
         } else {
             $attributes[$attribute] = null;
         }
     }
     if ($getResults) {
         return [$query->get(), $attributes];
     } else {
         return $query;
     }
 }
 /**
  * Register any other events for your application.
  *
  * @param  \Illuminate\Contracts\Events\Dispatcher  $events
  * @return void
  */
 public function boot(DispatcherContract $events)
 {
     parent::boot($events);
     Collection::created(function ($collection) {
         /** @var Collection $collection */
         $page = new Page();
         $page->title = $collection->title;
         $collection->page()->save($page);
     });
     Poem::created(function ($poem) {
         /** @var Poem $poem */
         $page = new Page();
         $page->title = $poem->title;
         /** @var Collection $collection */
         $collection = $poem->collection;
         $parentPage = $collection->page;
         $page->parent()->associate($parentPage);
         $poem->page()->save($page);
     });
 }
 /**
  * @return \Illuminate\Database\Eloquent\Builder
  */
 protected function getQuery()
 {
     return Collection::query();
 }