Link to home
Start Free TrialLog in
Avatar of Eduardo Fuerte
Eduardo FuerteFlag for Brazil

asked on

Could you point why a Laravel Controller method produces an error when another similar runs correctly?

Hi Experts

Could you point why a Laravel Controller method produces an error when another similar runs correctly?

Accordingly to:

JS
function Vitrine() {}
 

//OK
Vitrine.prototype.salvar = function(){
  
  $.ajax({
    url: '/vitrine/salvar',
    
    method: "POST",
    data: {
      _token: $('input[name="_token"]').val(),
      id: $('#id').val(),
      url: $('#url').val(),
      inicio: $('#inicio').val(),
      termino: $('#termino').val(),
      title: $('#title').val(),
      description: $('#description').val(),
      points: $('#points').val()
    },
    error:function(data){
      hotsite.openModalCustom("Erro", data.responseText, "Entendi", "error");
    },
    success: function(data){
      hotsite.openModalCustom("Sucesso ao salvar", data.retorno, "Entendi", "success");
      hotsite.closeModal('mEditor');
      //hotsite.vitrine.filtrar();
    }
  });
};


// This doesn't runs correctly
Vitrine.prototype.minhasfotos = function(){
  $.ajax({
    url: '/vitrine/minhasFotos',
    method: "GET",
    dataType: "html",
    error:function(data){
      hotsite.openModalCustom("Erro", "Erro ao carregar vitrine.", "Entendi", "error");
    },
    success: function(data){
      $('#midiaList').html(data);
    }
  });
}

Open in new window



Laravel routes:
Route::post('/vitrine/salvar',['uses'=>'VitrinesController@salvar'])->middleware('cadastro');   // OK
Route::post('/vitrine/minhasfotos',['uses'=>'VitrinesController@minhasFotos'])->middleware('cadastro');  //NOK

//This route apparently is called somehow....
Route::get('/vitrine/{id}/obter',['uses'=>'admin\VitrineController@obter'])->middleware('cadastro');

Open in new window



VitrinesController methods:
// Runs correctly
 public function salvar(Request $request){
        
        
        info("Em salvar...");

        $id=$request->input('id');
        $url=$request->input('url');
        $inicio=$request->input('inicio');
        $termino=$request->input('termino');

        $titulo = $request->input('titulo');
        $descricao = $request->input('descricao');
        
        $titulo = $request->input('title');
        $descricao = $request->input('description');
        //$pontuacao = $request->input('points');
  
        try{
            if($id != '' &&  $id > 0){
              $vitrine = Vitrine::find($id);
            }
  
            if(empty($vitrine)){
              $vitrine = new Vitrine();
              $vitrine->created_at=new \DateTime();
            }
                
            $vitrine->titulo = $titulo;
            $vitrine->descricao = $descricao;
            $vitrine->url = $url;
            $vitrine->updated_at=new \DateTime();

            $vitrine->criador_id = auth()->user()->id;

            $vitrine->save();
  
        } catch (\Exception $e) {
            
            info($e);
            return response()->json(new Resultado(true,'','Erro ao salvar a foto'), 400);
        }
  
        return response()->json(new Resultado(false,'','Sua foto foi enviada para análise da Copagaz, se for aprovada a foto ficará visível para todos os participantes.'));
    
    }
	
	
// This method generates an error with  apparently no relation with VitrinesController (but with VitrineController)


    public function minhasFotos(Request $request){
        
		// Just to check call
        info('em minhasFotos');
       
    }

Open in new window




Web page
Runs OK
        <button type="button" class="btn btn-primary" onclick="hotsite.vitrine.salvar();"><i class="fas fa-hdd" aria-hidden="true"></i> Salvar</button>
		
Generates Error
		<button type="button" class="btn btn-primary" onclick="hotsite.vitrine.minhasfotos();">

Open in new window



The error pointed at another Controller (VitrineController.php)

User generated image

User generated image

Could you check and point a workaround?

Thanks in advance
ASKER CERTIFIED SOLUTION
Avatar of Chris Stanyon
Chris Stanyon
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Eduardo Fuerte

ASKER

Hi Chris

So I did this adjust:

Route::get('/vitrine/minhasfotos',['uses'=>'VitrinesController@minhasFotos'])->middleware('cadastro');

Open in new window


But the same error remains...
Adjusted it also


Vitrine.prototype.minhasfotos = function(){
  $.ajax({
    url: '/vitrine/minhasfotos',
    method: "GET",
    dataType: "html",
    error:function(data){
      hotsite.openModalCustom("Erro", "Erro ao carregar vitrine.", "Entendi", "error");
    },
    success: function(data){
      $('#midiaList').html(data);
    }
  });
}


Before

    url: '/vitrine/minhasFotos',

Open in new window



Now it's running...
Chris


Thank you for the help!
Excellent. Good spot on the typo. I missed that.