Bonjour tout le monde,
je suis novice en Moose. Au fait j'ai une base de données que je peux l'exécuter. Ma base de données je l'utilise comme Role ca marche très bien. Je peux exécuter mes Select Statements dans une fonction. Je n'arrive pas à utiliser l'attribut data dans mon attribut CurrentQuestion. Il me sort comme quoi use of unitialized value.
si j'exécute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 package GameMooseFragen; use Moose; use DBI; use Data::Dumper; with 'DB'; has data => ( is => 'rw', default => sub { my $self = shift; $self->{data} = getDB(); return $self->{data}; }, lazy => 1 ); has currentQuestion => ( is => 'rw', default => sub { my $self = shift; my $question = $self->{data}; return $question->{Fragen}; }, ); sub getDB { my ($self) = shift; #print Dumper($self->{data}); my $table = 'tab_Fragen'; my @fields = qw( Fragenid Fragen Antwort_a Antwort_b Antwort_c ); # geändert my $q = GameMooseFragen->new(); # my $dbh = DBI->connect ($dsn, $user, $pwd) or die $DBI::errstr; my $sql = 'SELECT ' . join(', ', @fields) . " FROM $table"; my $sth = $q->dbh->prepare($sql); $sth->execute() or die $DBI::errstr; return $sth->fetchall_arrayref; #$self->{data} = $sth->fetchall_arrayref; #print Dumper($self->{data}); #return $self->{data}; }
je récupère les données dans data mais dans currentQuestion j'ai undef.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 use strict; use warnings; use Data::Dumper; use GameMooseFragen; my $gmfragen = GameMooseFragen->new(); #$gmfragen->nextQuestion(); print Dumper ($gmfragen->data()); #$gmfragen->getDB(); #$gmfragen->question(); print Dumper($gmfragen->currentQuestion()); #print Dumper($gmfragen->{Fragenid}); #print Dumper($gmfragen->Fragenid()); print "blub\n";
merci bien de jetter un coup d'oeil.
Gracias.
Partager