Boa noite,
Estou com um problema em um método construtor que estou testando. Esta é a Classe Tarefa:
<?php
require_once ("Categoria.php");
class Tarefa{
public $id;
public $nome;
public $inicio;
public $fim;
public $categoria;
public $user_id;
function __construct($nome, Categoria $categoria, $user_id){
$this->$nome;
$this->$categoria->id;
$this->$user_id;
}
function getInicio(){
return $this->inicio;
}
function setInicio($inicio){
if($inicio == null OR $inicio == ""){
$inicio = date('Y-m-d');
}else{
$this->inicio = $inicio;
}
}
}
Esta é a Classe Categoria:
<?php
class Categoria
{
private $id;
private $nome;
public function getId()
{
return $this->id;
}
public function setId($id)
{
$this->id = $id;
}
public function getNome()
{
return $this->nome;
}
public function setNome($nome)
{
$this->nome = $nome;
}
}
Esta é a Logica para inserir uma tarefa:
<?php
require_once("class/Tarefa.php");
require_once("class/Usuario.php");
require_once("cabecalho.php");
require_once("banco-tarefa.php");
require_once("logica-usuario.php");
verificaUsuario();
$categoria = new Categoria;
$categoria->setId($_POST['categoria_id']);
$tarefa = new Tarefa($_POST['nome'], $categoria->getId(), $user['id']);
$tarefa->id = null;
$tarefa->$_POST['inicio'];
$tarefa->$_POST['fim'];
if(insereTarefa($conexao, $tarefa)){
$_SESSION["success"] = "A tarefa $tarefa->nome, foi incluida com sucesso.";
header("Location: lista-tarefas.php");
}else{
$msg=mysqli_error($conexao);//Recebe mensagem de erro do banco
$_SESSION["success"] = "A tarefa $tarefa->$nome?></strong> não foi incluida com sucesso $msg.";
header("Location: lista-tarefas.php");
}
mysqli_close($conexao);
require_once ("rodape.php");
O tentar realizar qualquer ação com a Classe Tarefa (listar por exemplo), o PHP me apresenta a seguinte mensagem.
Catchable fatal error: Object of class Categoria could not be converted to string in C:\xampp\htdocs\glaw_2.0\class\Tarefa.php on line 14
Já tentei acessar via método o objeto categoria, mas recebo este erro.
Catchable fatal error: Argument 2 passed to Tarefa::__construct() must be an instance of Categoria, string given, called in C:\xampp\htdocs\glaw_2.0\adiciona-tarefa.php on line 13 and defined in C:\xampp\htdocs\glaw_2.0\class\Tarefa.php on line 12
Se eu remover o método construtor tudo flui perfeitamente, no entanto gostaria de mante-lo por motivo de segurança.
Alguém teria alguma solução o u forma de contornar isso?
Grato. Gustavo