sentinel phpという外部ライブラリを利用しており、以下のようなコードの結果、
php
1<?php 2ini_set('display_errors', 1); 3function prep($str){ 4 echo "<pre>"; 5 print_r($str); 6 echo "</pre>"; 7} 8function predump($str){ 9 echo "<pre>"; 10 var_dump($str); 11 echo "</pre>"; 12} 13// Import the necessary classes 14use Cartalyst\Sentinel\Native\Facades\Sentinel; 15use Illuminate\Database\Capsule\Manager as Capsule; 16// Include the composer autoload file 17require __DIR__.'/../vendor/autoload.php'; 18// Setup a new Eloquent Capsule instance 19$capsule = new Capsule; 20$capsule->addConnection([ 21 'driver' => 'mysql', 22 'host' => 'localhost', 23 'database' => 'sentinel', // データベース名を変更していたら合わせて変更 24 'username' => 'XXXX', // xxxxを、データベースのユーザー名に変更 25 'password' => 'XXXX', // xxxxxxを、データベースのパスワードに変更 26 'charset' => 'utf8', 27 'collation' => 'utf8_unicode_ci', 28]); 29$capsule->bootEloquent(); 30 31$credentials = [ 32 'email' => 'example@example.com', 33 'password' => 'password', 34]; 35var_dump(Sentinel::authenticate($credentials)); 36//
下記のようなオブジェクトが返ってきました。
object(Cartalyst\Sentinel\Users\EloquentUser)#34 (32) { ["table":protected]=> string(5) "users" ["fillable":protected]=> array(5) { [0]=> string(5) "email" [1]=> string(8) "password" [2]=> string(9) "last_name" [3]=> string(10) "first_name" [4]=> string(11) "permissions" } ["casts":protected]=> array(1) { ["permissions"]=> string(4) "json" } ["hidden":protected]=> array(1) { [0]=> string(8) "password" } ["persistableKey":protected]=> string(7) "user_id" ["persistableRelationship":protected]=> string(12) "persistences" ["loginNames":protected]=> array(1) { [0]=> string(5) "email" } ["connection":protected]=> string(7) "default" ["primaryKey":protected]=> string(2) "id" ["keyType":protected]=> string(3) "int" ["incrementing"]=> bool(true) ["with":protected]=> array(0) { } ["withCount":protected]=> array(0) { } ["preventsLazyLoading"]=> bool(false) ["perPage":protected]=> int(15) ["exists"]=> bool(true) ["wasRecentlyCreated"]=> bool(false) ["attributes":protected]=> array(9) { ["id"]=> int(6) ["email"]=> string(20) "example@example.com" ["password"]=> string(60) "XXXXXXX" ["permissions"]=> NULL ["last_login"]=> object(Carbon\Carbon)#23 (3) { ["date"]=> string(26) "2021-06-18 04:41:14.473640" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } ["first_name"]=> NULL ["last_name"]=> NULL ["created_at"]=> string(19) "2021-06-17 06:50:57" ["updated_at"]=> string(19) "2021-06-18 04:41:14" } //以下省略
ライブラリのExample Response
にあるように
php
1{ 2 id: "1", 3 email: "john.doe@example.com", 4 permissions: { 5 admin: true 6 }, 7 last_login: { 8 date: "2014-02-17 03:44:31", 9 timezone_type: 3, 10 timezone: "UTC" 11 }, 12 first_name: "John", 13 last_name: "Doe", 14 created_at: "2014-02-17 02:43:01", 15 updated_at: "2014-02-17 02:43:37" 16}
の形式で返ってこないじゃないか・・・・という疑問符は残るのですが、ここで例えば実際に帰ってきたオブジェクトでデータにアクセスしたいのですが、方法がわかりません。。["table":protected]
な形式は初めてみるのですが、Sentinel::authenticate($credentials)->tableやSentinel::authenticate($credentials)["table"]でもアクセスできずにNULLが返ってきます。
アクセス方法などについてご存知の方がいらっしゃればアドバイスを頂けると幸いです。
よろしくお願い申し上げます。