Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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.
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...
>
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.
Só por que o estático não existe instancia do objeto?
Só???
$this se refere ao objeto atual, sem objeto, sem $this...
Obrigado pela ajuda Henrique. Tópico encerrado!
Qual o script que você executa para desencadear o erro?