Udtræk fra session to demensionelt array

Tags:    array php code-igniter flexi-auth

Hejsa.

Jeg sidder og arbejder lidt med et library til CI.
Har før leget med Ion_Auth og det er altså en bare en drøm, for der er der nemt adgang til session arrayet.
Det har desværre blot sine begrænsinger i ACL sammenhænge.

Så faldt jeg over Flexi Auth. Der er der virkelig muligheder i. Men som alt andet nyt så skal man jo lige lære at bruge det. Og det begynder også at give mening, bare ikke lige at hente data fra mit session array.

Nogen kloge mennesker der kan sige mig hvordan jeg henter user_identifier ud fra dette array?
Meget gerne med noget built-in i CI.

Fold kodeboks ind/udPHP kode 




6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 21 karma
Sorter efter stemmer Sorter efter dato
Har du set på på deres hjemmeside?

http://haseydesign.com/flexi-auth/user_guide/user_account_index

Og kigger på ned i koden ( https://github.com/haseydesign/flexi-auth/blob/master/library_files/application/models/flexi_auth_model.php ):
Fold kodeboks ind/udKode 


Om det nøjagtig er det, kan jeg ikke vurdere.



Fejlen er at du prøver at bruge et Array som et StdClass objekt. Flexi-auth gemmer et array i session, ikke et objekt. Du skal derfor bruge ['user_identifier'] notation snarere end ->user_identifier notation.

Der er ikke nogen CI funktionalitet til at hente flere dimensioner ud af et array gemt i en CI session.

Du vil altså være nødt til enten at extende Session klassen med den nye funktionalitet, eller behandle flexi_auth som et ganske almindeligt array.
Fold kodeboks ind/udPHP kode 


PHP 5.4 tillader dog en nifty lille ting når du kun skal læse:
Fold kodeboks ind/udPHP kode 




Det kan godt være, at jeg har misforstået noget, men ud fra, hvad jeg kan se, så kan du tilgå dit flexi-auth array via. ['flexi_auth']['user_identifier'] som et helt normalt array.



Skulle gerne bruge funktioner fra CI



Jeg prøver igen.

Problemet ligger ikke i at array ikke bliver lavet for det gør det.
Men jeg skulle gerne have fat i data fra ['flexi_auth']['user_identifier'], via en build-in function i CI.
Funktionen jeg skal bruge er:
Fold kodeboks ind/udPHP kode 

Men kan kun få lov til at hente i det første index.

Jeg kan pt via dette
Fold kodeboks ind/udPHP kode 


Få dette:
Fold kodeboks ind/udPHP kode 


Så langt så godt.
Nu aner jeg bare ikke hvordan jeg får fat i den enkelte key.

Skriver jeg:
Fold kodeboks ind/udPHP kode 


Får jeg denne fejl:
Fold kodeboks ind/udPHP kode 

Nogen bud?



Indlæg senest redigeret d. 17.10.2013 12:56 af Bruger #15663
Jeg fandt løsningen.

Den lå i at Flexi_auth laver kontakter også kan man via den få fat i det.
Man skulle blot bruge
Fold kodeboks ind/udPHP kode 




t