public function showPrincipal()
 {
     $id = DB::table('categorias')->select('id')->take(1)->orderBy('id', 'DESC')->pluck('id');
     $editarCategoria = Dado::join('categorias', 'categorias.id', '=', 'dados.categorias_id')->select('dados.id', 'dados.descricao', 'dados.video', 'dados.categorias_id', 'categorias.name')->where('dados.categorias_id', $id)->first();
     $editarObra = Obra::join('categorias', 'categorias.id', '=', 'obras.categorias_id')->select('obras.id', 'obras.projetos', 'obras.servicos_inicias', 'obras.fundacoes', 'obras.estrutura', 'obras.alvenaria', 'obras.instalacoe_eletricas', 'obras.instalacoes_hidrossanitarias', 'obras.pavimentacao', 'obras.revestimentos', 'obras.cobertura_e_forros', 'obras.esquadrias', 'obras.pintura', 'obras.acabamento', 'obras.andamento_geral_da_obra', 'obras.categorias_id')->where('obras.categorias_id', $id)->first();
     $editarConstruindo = Construindo::join('categorias', 'categorias.id', '=', 'construindo_com_qualidade.categorias_id')->select('construindo_com_qualidade.id', 'construindo_com_qualidade.descricao', 'construindo_com_qualidade.categorias_id', 'categorias.name')->where('construindo_com_qualidade.categorias_id', $id)->first();
     $editarFotos = Foto::join('categorias', 'categorias.id', '=', 'fotos.categorias_id')->select('fotos.id', 'fotos.categorias_id', 'fotos.imagem', 'categorias.id')->where('fotos.categorias_id', $id)->get();
     $mesEano = Foto::join('categorias', 'categorias.id', '=', 'fotos.categorias_id')->select('fotos.id', 'fotos.categorias_id', 'fotos.ano', 'fotos.mes', 'fotos.imagem', 'categorias.id')->orderBy(\DB::raw('YEAR(fotos.mes)'), 'ASC')->orderBy(\DB::raw('MONTH(fotos.mes)'), 'ASC')->groupBy(\DB::raw('MONTH(fotos.mes)'))->groupBy(\DB::raw('YEAR(fotos.mes)'))->where('fotos.categorias_id', $id)->get();
     // dd($mesEano);
     $this->layout->content = View::make('site.acompanheaobra')->with('editarCategoria', $editarCategoria)->with('editarObra', $editarObra)->with('mesEano', $mesEano)->with('editarConstruindo', $editarConstruindo)->with('editarFotos', Categoria::find($id));
 }
<?php

/*    PRINCIPAL    */
Route::get('/', 'SitePrincipalController@showPrincipal');
/*    EMPREENDIMENTO    */
Route::get('/empreendimento/{id}', function ($id) {
    $editarCategoria = Dado::join('categorias', 'categorias.id', '=', 'dados.categorias_id')->select('dados.id', 'dados.descricao', 'dados.video', 'dados.categorias_id', 'categorias.name')->where('dados.categorias_id', $id)->first();
    $editarObra = Obra::join('categorias', 'categorias.id', '=', 'obras.categorias_id')->select('obras.id', 'obras.projetos', 'obras.servicos_inicias', 'obras.fundacoes', 'obras.estrutura', 'obras.alvenaria', 'obras.instalacoe_eletricas', 'obras.instalacoes_hidrossanitarias', 'obras.pavimentacao', 'obras.revestimentos', 'obras.cobertura_e_forros', 'obras.esquadrias', 'obras.pintura', 'obras.acabamento', 'obras.andamento_geral_da_obra', 'obras.categorias_id')->where('obras.categorias_id', $id)->first();
    $editarConstruindo = Construindo::join('categorias', 'categorias.id', '=', 'construindo_com_qualidade.categorias_id')->select('construindo_com_qualidade.id', 'construindo_com_qualidade.descricao', 'construindo_com_qualidade.categorias_id', 'categorias.name')->where('construindo_com_qualidade.categorias_id', $id)->first();
    $editarFotos = Foto::join('categorias', 'categorias.id', '=', 'fotos.categorias_id')->select('fotos.id', 'fotos.categorias_id', 'fotos.ano', 'fotos.mes', 'fotos.imagem', 'categorias.id')->where('fotos.categorias_id', $id)->first();
    $mesEano = Foto::join('categorias', 'categorias.id', '=', 'fotos.categorias_id')->select('fotos.id', 'fotos.categorias_id', 'fotos.ano', 'fotos.mes', 'fotos.imagem', 'categorias.id')->orderBy(\DB::raw('YEAR(fotos.mes)'), 'ASC')->orderBy(\DB::raw('MONTH(fotos.mes)'), 'ASC')->groupBy(\DB::raw('MONTH(fotos.mes)'))->groupBy(\DB::raw('YEAR(fotos.mes)'))->where('fotos.categorias_id', $id)->get();
    // dd($editarFotos);
    return View::make('site.empreendimento')->with('editarCategoria', $editarCategoria)->with('editarObra', $editarObra)->with('editarConstruindo', $editarConstruindo)->with('mesEano', $mesEano)->with('editarFotos', Categoria::find($id));
});
Route::controller('/empreendimento', 'SiteEmpreendimentoController');
/*    ACOMPANHE A OBRA    */
Route::get('/acompanhe_a_obra', 'SiteAcompanheController@showPrincipal');
/*    QUEM SOMOS    */
Route::get('/quemsomos', 'SiteQuemsomosController@showPrincipal');
/*    CONTATO    */
Route::get('/contato', array('as' => 'contato', 'uses' => 'SiteContatoController@contato'));
Route::post('/contato', 'SiteContatoController@postContato');
/*    REGISTRO - CORRETOR    */
Route::controller('registro', 'RegistroCorretorController');
/*    LOGIN    */
Route::get('login', array('as' => 'login', function () {
    return View::make('login');
}))->before('guest');
Route::post('login', array('before' => 'csrf', function () {
    $regras = array("email" => "required|email", "password" => "required|");
    $validacao = Validator::make(Input::all(), $regras);
 public function postCriarEmpreendimento()
 {
     // validate
     $rules = array('name' => 'required');
     $validator = Validator::make(Input::all(), $rules);
     $file = Input::file('imagem');
     // Pega o arquivo que vem do formulario
     $filename = $file->getClientOriginalName();
     // Pega o nome do arquivo.
     // Função para Resize da imagem e salvar na pasta correta.
     Image::make($file->getRealPath())->resize(200, null, function ($constraint) {
         $constraint->aspectRatio();
     })->save(public_path() . '/assets/empreendimentos/capas/' . $filename);
     // processe o início de uma sessão
     if ($validator->fails()) {
         return Redirect::to('admin/empreendimento')->withErrors($validator);
     } else {
         // Criar
         $empreendimento = new Categoria();
         $empreendimento->name = Input::get('name');
         $empreendimento->imagem = '/assets/empreendimentos/capas/' . $filename;
         $empreendimento->save();
         $idCategoria = $empreendimento->id;
         // Grava as informações na tabela Obras com os valor 0, e grava com o $idCategoria.
         $dadosObras = array('obras.projetos' => 0, 'obras.servicos_inicias' => 0, 'obras.fundacoes' => 0, 'obras.estrutura' => 0, 'obras.alvenaria' => 0, 'obras.instalacoe_eletricas' => 0, 'obras.instalacoes_hidrossanitarias' => 0, 'obras.pavimentacao' => 0, 'obras.revestimentos' => 0, 'obras.cobertura_e_forros' => 0, 'obras.esquadrias' => 0, 'obras.pintura' => 0, 'obras.acabamento' => 0, 'obras.andamento_geral_da_obra' => 0, 'obras.categorias_id' => $idCategoria);
         Obra::create($dadosObras);
         // Grava as informações na tabela Dados com algum valor e com o $idCategoria
         $dadosDados = array('dados.descricao' => 'Seu Descrição aqui', 'dados.video' => 'Seu video aqui', 'dados.categorias_id' => $idCategoria);
         Dado::create($dadosDados);
         // Grava as informações na tabela Construindo com algum valor e com o $idCategoria
         $dadosConstruindo = array('construindo_com_qualidade.descricao' => 'Seu Descrição aqui', 'construindo_com_qualidade.categorias_id' => $idCategoria);
         Construindo::create($dadosConstruindo);
         // redirect
         Session::flash('message', 'Empreendimento criado com sucesso!');
         return Redirect::to('admin/empreendimento/editar-dados-gerais/' . $idCategoria);
     }
 }