/**
  * Register any other events for your application.
  *
  * @param  \Illuminate\Contracts\Events\Dispatcher  $events
  * @return void
  */
 public function boot(DispatcherContract $events)
 {
     parent::boot($events);
     Project::observe(new SlugGeneratorObserver());
     Category::observe(new SlugGeneratorObserver());
     Tag::observe(new SlugGeneratorObserver());
 }
Example #2
0
 public function createProject($request)
 {
     $file = $this->image->doUpload();
     $input = $request->all();
     $projectData = ['image_id' => $file->id, 'name' => $input['name'], 'description' => $input['description'], 'url' => $input['url'], 'user_email' => $input['user_email'], 'user_twitter' => str_replace('@', '', $input['user_twitter'])];
     $project = Project::create($projectData);
     $project->tags()->sync($input['tags']);
     $project->categories()->sync($input['categories']);
     event(new ProjectWasCreated($project));
     return $project;
 }
Example #3
0
 /**
  * Display the specified resource.
  *
  * @param  int $id
  * @return Response
  */
 public function show($slug)
 {
     $project = Project::where('slug', $slug)->firstOrFail();
     // related tags
     $c = $project->categories;
     $related = Project::whereHas('categories', function ($query) use($c) {
         $categories = [];
         $c->each(function ($cate) use($query, &$categories) {
             $categories[] = $cate->id;
         });
         $query->whereIn('projects_categories.id', $categories);
     })->where('is_published', 1)->where('id', '!=', $project->id)->take(3)->get();
     return view('sites.show')->with('project', $project)->with('related', $related)->with('currentMenu', 'proyectos');
 }