Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Guilherme_90

[Resolvido] Erro ao passar valor para um objeto

Recommended Posts

Boa tarde pessoal, estou com um problema que não estou vendo muito sentido (até o momento).

Se eu crio um atributo dentro da classe, e chamo ele dentro de um método e atribuo um valor, aparece o erro:

 

Fatal error: Using $this when not in object context in /var/www/src/adm/application/core/Model.php on line 8

Depois de tanto testar, acabei removendo umas coisas só pra debug. Está assim:

<?

class Model{

   public $statement;

   public function doSelectAll($crud, $data){
       $this->statement = 'adsadsad';
       return $this;
   }

}

?>

Alguém poderia me ajudar? Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Chamo este método no meu controller:

public static function dataSelectAll($start, $limit) {
       $data = array(
           "table" => self::$table,
           "fields" => array("*"),
           "start" => $start,
           "limit" => $limit,
           "orderBy" => "nome",
           "direction" => "ASC"
       );

      return parent::doSelectAll();

   }

 

E o meu controller tá assim:

public function index() {
       $users = UserGateway::dataSelectAll(0, 10);

       $i = 0;
       while ($i <= count($users)):
           $data['data'] = $users;
           $i++;
       endwhile;

       parent::_show(new View('index', $data));
   }

 

Não faço idéia do que seja cara, por que quando eu faço:

<?

class Model{

   public function doSelectAll($crud, $data){
       echo $statement = 'adsadsad';
   }

}

?>

funciona normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tá fazendo um monte de chamadas estáticas aí onde deveria estar usando instâncias...

No último caso funciona pq você não utiliza $this em lugar nenhum...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tá fazendo um monte de chamadas estáticas aí onde deveria estar usando instâncias...

No último caso funciona pq você não utiliza $this em lugar nenhum...

É isso mesmo, acabei de ver aqui, era justamente por causa das chamadas estáticas, mas por que deria este erro? Só por que o estático não existe instancia do objeto? Desta vez não entendi muito bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Só por que o estático não existe instancia do objeto?

Só???

 

$this se refere ao objeto atual, sem objeto, sem $this...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda Henrique. Tópico encerrado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.