Authでユーザ認証をしている。
ログイン機能と、ログイン中かどうかはマニュアルなどのサンプルで作った。(でもSmartyとからませて、エラーメッセージを出すのにはちょっと苦労したけど。。またこの話も書きたい)
ログイン中の場合に、その人の名前を出そうというお客さんの希望が出た。よく「XXさん、こんにちは」などとショッピングサイトででているやつ。
AuthでいうusernameはIDのことなので氏名とは違う。
要はユーザテーブルの他の情報を、ログイン時にとってこれればいいわけで。。。。
getAuthData() がそれか? 発行してみるが何も返ってこない。setAuthData()で、自力でセットした値だけを保持する器なのか?
だったら、ユーザテーブルにアクセスする時点で何か自分でコードを追加して保持させようか。
と、いろいろとあちこちにメッセージ入れて実行させて追って行って、、分かりました。
Authのインスタンス作成時にある指定をすると、ユーザレコードの内容を配列で取得し、getAuthData()で取れるようになるのでした。
$dsn=DATASET_NAME;
$params = array(
"dsn" => $dsn,
"table" => "user_table",
"usernamecol" => "user_id",
"passwordcol" => "pass",
"db_fields" => "*" //←ここ!!
);
$a = new Auth("DB", $params, "loginFunc", false);
$a->start();
$a->setIdle(300);
$a->setExpire(300);
$data = $a->getAuthData(); //これでユーザデータの配列がとれる
こんなのマニュアルのどこにも書いてないし。。ソースにしか書いてないし。。。。