質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

受付中

protectedプロパティのアクセスの方法

pegy
pegy

総合スコア240

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

3回答

0評価

0クリップ

481閲覧

投稿2021/06/18 04:47

sentinel phpという外部ライブラリを利用しており、以下のようなコードの結果、

php

<?php ini_set('display_errors', 1); function prep($str){ echo "<pre>"; print_r($str); echo "</pre>"; } function predump($str){ echo "<pre>"; var_dump($str); echo "</pre>"; } // Import the necessary classes use Cartalyst\Sentinel\Native\Facades\Sentinel; use Illuminate\Database\Capsule\Manager as Capsule; // Include the composer autoload file require __DIR__.'/../vendor/autoload.php'; // Setup a new Eloquent Capsule instance $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'sentinel', // データベース名を変更していたら合わせて変更 'username' => 'XXXX', // xxxxを、データベースのユーザー名に変更 'password' => 'XXXX', // xxxxxxを、データベースのパスワードに変更 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', ]); $capsule->bootEloquent(); $credentials = [ 'email' => 'example@example.com', 'password' => 'password', ]; var_dump(Sentinel::authenticate($credentials)); //

下記のようなオブジェクトが返ってきました。

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

{ id: "1", email: "john.doe@example.com", permissions: { admin: true }, last_login: { date: "2014-02-17 03:44:31", timezone_type: 3, timezone: "UTC" }, first_name: "John", last_name: "Doe", created_at: "2014-02-17 02:43:01", updated_at: "2014-02-17 02:43:37" }

の形式で返ってこないじゃないか・・・・という疑問符は残るのですが、ここで例えば実際に帰ってきたオブジェクトでデータにアクセスしたいのですが、方法がわかりません。。["table":protected]な形式は初めてみるのですが、Sentinel::authenticate($credentials)->tableやSentinel::authenticate($credentials)["table"]でもアクセスできずにNULLが返ってきます。
アクセス方法などについてご存知の方がいらっしゃればアドバイスを頂けると幸いです。

よろしくお願い申し上げます。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

pegy

2021/06/18 05:17

コメントありがとうございます。まだ存じ上げないため、一度該当箇所を勉強してみます。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。