2
respostas

Call to undefined method

Eu tenho 2 controllers em um eu tenho um método que é chamado no outro mas dá um erro dizendo que o método não existe mas ele está lá.

Controller 1 (contém o método) :

<?php
namespace App\Http\Controllers;

use Illuminatez\Support\Facades\DB;

class BairroController extends Controller{

    private $bairros;

        public function __construct(){
                $this->bairros = [];
        }

    public function getBairros(){
        array_push($this->bairros, "Bento Ribeiro");
        array_push($this->bairros, "Bangú");
                array_push($this->bairros, "Cascadura");
                array_push($this->bairros, "Deodoro");
                array_push($this->bairros, "Guadalupe");
                array_push($this->bairros, "Madureira");
                array_push($this->bairros, "Marechal Hermes");
                array_push($this->bairros, "Osvaldo Cruz");
                array_push($this->bairros, "Padre Miguel");
                array_push($this->bairros, "Realengo");
                array_push($this->bairros, "Sulacap");
                array_push($this->bairros, "Vila Militar");
                array_push($this->bairros, "Vila Valqueire");
                return $this->bairros;
    }

}

?>

Controller 2 (chama o método) :

namespace App\Http\Controllers;


use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Http\Controllers\BairroController;
use Session;
require_once app_path().'/helpers.php';

class AdController extends Controller{

    //Enquanto só tem RJ
    private $cidade = "Rio De Janeiro";


    public function noParameter(){
        return redirect("/anuncios/".uglyParameter($this->cidade));
    }

    public function withCidade($nomeCidade){
        $nomeCidade = prettyParameter($nomeCidade);
        $bairroController = new BairroController();
        //echo $nomeCidade;
        $bairros = $bairroController->getBairros();

        //Pegar os DESTAQUES da CIDADE

        //$anuncios = $produtos = DB::select('select * from anunciovip');

        return view('anuncios')->with('cidade',$nomeCidade);
    }


///Outros métodos


}

ERRO:

BadMethodCallException in Controller.php line 107: Method [getBairros] does not exist.
2 respostas

Saiu um Z no ilumminate mas foi removido no código*

Rafael seu problema já foi resolvido? Uma dica, não é boa pratica da new em um controller dentro de outro controller, essa regra especifica você referente ao modelo você pode colocar dentro do model bairro

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software