2017-06-22 1 views
2

Ich möchte Eigenschaften wie versteckt, hängt an, Datum von Superklasse zu seiner Unterklasse, wo Sup-Klasse kann seine eigenen Eigenschaften definieren, ohne ihre Eltern zu überschreiben.Verdeckte Eigenschaft von SuperClass zu Subclass verwenden

Etwas Ähnliches,

class SuperClass extends Model 
{ 
    protected $hidden = ['pivot','deleted_at']; 
} 

class SubClass extends SuperClass 
{ 
    protected $hidden = ['password']; 
} 

hätte also die verborgene Eigenschaft SubClass alle drei Eigenschaften. Irgendeine Idee?

+0

tun es im Konstruktor – apokryfos

+0

Nein, weil Sie Eigenschaft in der Unterklasse überschreiben –

+0

Dank, dachte ich Laravel dies hatte handhaben, so Vielleicht erwarte ich etwas Magisches. – CHnPn

Antwort

2

Wenn Sie alle Immobilien in der Unterklasse wollen, dann können Sie diesen Konstruktor tun:

class SuperClass extends Eloquent 
{ 
    protected $hidden = ['pivot','deleted_at']; 
} 

class SubClass extends SuperClass 
{ 
    function __construct() 
    { 
     $this->hidden[]='password'; 
    } 
    public function get_hidden() 
    { 
     return $this->hidden; 
    } 
} 
$obj = new SubClass(); 
var_dump($obj->get_hidden()); 
+0

Vergessen Sie nicht, den übergeordneten Konstruktor aufzurufen. – apokryfos

+0

@apokryfos Danke aber superclass hat keinen Konstruktor in der Demo, deshalb habe ich es nicht getan –

+0

Eloquent tut zwar (obwohl es fair sein soll, heißt es 'Model') – apokryfos

Verwandte Themen