Constructeurs sur des classes s'étendant Eloquent
Je viens de commencer un nouveau site web et je voulais faire usage de l'Éloquence. Dans le processus d'ensemencement de ma base de données, j'ai remarqué que je me vide les lignes ajoutées si j'avais inclus tout type de constructeur, sur le modèle de ce qui s'étend éloquent. Par exemple, l'exécution de ce semoir:
<?php
class TeamTableSeeder extends Seeder {
public function run()
{
DB::table('tm_team')->delete();
Team::create(array(
'city' => 'Minneapolis',
'state' => 'MN',
'country' => 'USA',
'name' => 'Twins'
)
);
Team::create(array(
'city' => 'Detroit',
'state' => 'MI',
'country' => 'USA',
'name' => 'Tigers'
)
);
}
}
Avec ce que mon Équipe de classe:
<?php
class Team extends Eloquent {
protected $table = 'tm_team';
protected $primaryKey = 'team_id';
public function Team(){
//null
}
}
Rendements ceci:
team_id | city | state | country | name | created_at | updated_at | deleted_at
1 | | | | | 2013-06-02 00:29:31 | 2013-06-02 00:29:31 | NULL
2 | | | | | 2013-06-02 00:29:31 | 2013-06-02 00:29:31 | NULL
Il suffit de retirer le constructeur, tous ensemble, permet le semoir à fonctionner comme prévu. Quoi exactement, je fais de mal avec le constructeur?
source d'informationauteur vikingsfan19
Vous devez vous connecter pour publier un commentaire.
Vous devez appeler
parent::__construct
pour rendre les choses fonctionnent ici, si vous regardez le constructeur de laEloquent
classe:La
boot
méthode est appelée et lebooted
propriété est définie. Je ne sais pas vraiment ce que c'est, mais en fonction de votre problème, il semble pertinent 😛De refactoriser votre constructeur pour obtenir la
attributes
tableau et le mettre à l'constructeur parent.Mise à jour
Ici, c'est le besoin de code:
Dans laravel 3, vous devez mettre le deuxième paramètre '$' avec la valeur par défaut
"faux".
Vous pouvez utiliser cette méthode générique qui vous permet de passer un paramètre trop.