Ir para conteúdo

POWERED BY:

Arquivado

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

Gabriel Jacinto

[Resolvido] Call to a member function...

Recommended Posts

Não sei por que, mas um método de uma classe está dando esse erro:

Fatal error: Call to a member function displayLikers() on a non-object in C:\wamp\www\ale2\home.php on line 119

Não vou nem dar detalhes porque não sei explicar o que está acontecendo. A classe que estou utilizando é essa:

class Likes{

private $dbActions;
private $table;

public function __construct( $table, DBCommands $dbcommands ){
	$this->dbActions = $dbcommands;
	$this->table = $table;
}

       // Outros métodos

public function displayLikers( $tableUsers, $tableLikes, $id_post ){
	$sql = "SELECT * FROM `{{ table }}` INNER JOIN `{$tableLikes}` ON {$tableLikes}.id_user = {{ table }}.id WHERE {$tableLikes}.id_post = {$id_post}";
	$this->dbActions->setTable( $tableUsers );
	$this->dbActions->select( false, null, null, null, $sql );
	return $this->dbActions->fetchAll();
}

}

A linha 119 do arquivo é essa:

$fetch = $likes->displayLikers( 'users', 'likes', $infoOfPosts['id'] );

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

Provavelmente o método não esta aceitando o terceiro parâmetro neste formato $infoOfPosts['id'], troque-o por uma variável e veja como ele se comporta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

precisa instanciar o objeto.. algo assim:

$likes = new Likes();
$fetch = $likes->displayLikers( 'users', 'likes', $infoOfPosts['id'] );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por acaso, essa inicialização não se encontra dentro de um if? Pode ser que tal "ramo" do programa não esteja sendo executado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Vou mostrar um pequeno trecho do código:

<?php

$posts = new Posts( 'posts', new DBCommands( new DBConnection ) );
$likes = new Likes( 'likes', new DBCommands( new DBConnection ) );

foreach( $posts->listPosts() as $infoOfPosts ){

   // ... Código ... //

   $fetch = $likes->displayLikers( 'users', 'likes', $id_post );

   // ... Mais código ... //

}

--------------

Nossa! Problema resolvido. O problema era que dentro do foreach havia outra variável chamada $likes. Obrigado por quem tentou ajudar. :grin:

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.