Invalid argument supplied for foreach()
Pessoal eu criei uma classe para gerar os getters e setters automaticamente.
class Model {
private $values = [];
public function __call($name, $args)
{
$method = substr($name, 0, 3);
$fieldName = substr($name, 3, strlen($name));
switch ($method)
{
case "get":
return (isset($this->values[$fieldName])) ? $this->values[$fieldName] : NULL;
break;
case "set":
$this->values[$fieldName] = $args[0];
break;
}
}
public function setData($data = array())
{
foreach ($data as $key => $value) {
$this->{"set".$key}($value);
}
}
public function getValues()
{
return $this->values;
}
}
?>
Eu utilizo essa classe por exemplo na Class User e funciona normalmente
public function getDados(){
$sql = new Sql();
$results = $sql->select("SELECT * FROM tb_users a INNER JOIN tb_persons b ON a.iduser = b.idperson");
$this->setData($results[0]);
}
Mas quando utlizo na class Blog ele da o erro Invalid argument supplied for foreach() sendo que quando dou um var_dump os dados estão sendo passados.
public function getPostBlog($url){
$sql = new Sql();
$results = $sql->select("SELECT * FROM tb_blog WHERE url = :url", [
":url"=>$url
]);
$this->setData($results[0]);
}
Array
(
[0] => Array
(
[idpost] => 3
[iduser] => 1
[data] => 2018-12-13
[views] => 0
[title] => Terceira Postagem
[photo] => /res/site/img/blog/home-blog/home-blog-1.jpg
[text] => Terceira Postagem gracias
[url] => terceira-postagem
)
)
Alguém que possa ajudar, obrigado desde já...Discussão (0)
Carregando comentários...