Modelを拡張するクラスのプロパティを割り当てることができないため、抽象クラス(Model)のマジックメソッド__set()に問題があります。__setメソッドで変数の名前を出力しようとしないでください。
abstract class Model
{
public $data;
public function __set($name, $value)
{
echo $name; $this->$name = $value;
}
}
class User extends Model
{
public $id;
}
$u = new User();
$u->data = "hello"; //print "data";
$u->id = 123; //print NOTHING.. WHY¿?