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

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

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

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

2739閲覧

cakephp3 DBから1レコードのカラム情報を全て取得したい

zaltsu9

総合スコア18

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

1クリップ

投稿2016/07/20 02:23

編集2016/07/20 05:01

いつもお世話になっております。

idを指定してDBから1レコードの情報($user)を取得しているのですが、
id,email,created,modifiedの4つの情報しか取得できずに困っています。
カラム情報を全て取得したい場合はどのようにすればよろしいのでしょうか。
(Modelはcakephpのbakeで作成しました)

ご教示のほどお願いいたします。

  • $this->log($user);で見た結果
Error: { "id": 1, "email": "test@test.test", "created": "2016-06-27T13:30:57+0900", "modified": "2016-07-19T18:15:52+0900" }
  • src/Controller/IndexController.php
<?php namespace App\Controller; use App\Controller\ApiAppController; use Cake\ORM\TableRegistry; class IndexController extends ApiAppController { public function index() { $this->loadComponent("Auth"); $this->Auth->config([ "authenticate" => [ "Form" => [ "fields" => [ "username" => "email", "password" => "password" ] ] ] ]); if ($this->Auth->identify()) { $id = $this->Auth->identify()["id"]; $trUsers = TableRegistry::get("Users"); $user = $trUsers->get($id); //こちらの値を上記に記載しています。
  • src/Model/Table/UsersTable.php
<?php namespace App\Model\Table; use App\Model\Entity\User; use Cake\ORM\Query; use Cake\ORM\RulesChecker; use Cake\ORM\Table; use Cake\Validation\Validator; class UsersTable extends Table { public function initialize(array $config) { parent::initialize($config); $this->table('users'); $this->displayField('id'); $this->primaryKey('id'); $this->addBehavior('Timestamp'); $this->belongsTo('Companys', [ 'foreignKey' => 'companys_id', 'joinType' => 'INNER' ]); $this->belongsTo('Groups', [ 'foreignKey' => 'groups_id', 'joinType' => 'INNER' ]); $this->hasMany('Contents', [ 'foreignKey' => 'user_id' ]); $this->hasMany('Operationlogs', [ 'foreignKey' => 'user_id' ]); } public function validationDefault(Validator $validator) { $validator ->allowEmpty('id', 'create'); $validator ->requirePresence('name', 'create') ->notEmpty('name'); $validator ->email('email') ->requirePresence('email', 'create') ->notEmpty('email'); $validator ->requirePresence('password', 'create') ->notEmpty('password'); $validator ->integer('size') ->requirePresence('size', 'create') ->notEmpty('size'); $validator ->requirePresence('active', 'create') ->notEmpty('active'); $validator ->requirePresence('role', 'create') ->notEmpty('role'); return $validator; } public function buildRules(RulesChecker $rules) { $rules->add($rules->isUnique(['email'])); $rules->add($rules->existsIn(['companys_id'], 'Companys')); $rules->add($rules->existsIn(['groups_id'], 'Groups')); return $rules; } }
  • src/Model/Entity/User.php
<?php namespace App\Model\Entity; use Cake\ORM\Entity; class User extends Entity { protected $_accessible = [ '*' => false, 'id' => false, ]; protected $_hidden = [ 'password' ]; }

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

[InvalidArgumentException] Invalid log levelというエラーが出ていますね。
$this->log($user);で何かおかしいところがあるのかもしれません。

debug($user);でも結果は同じでしょうか?

投稿2016/07/20 03:38

coba-coba

総合スコア1409

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zaltsu9

2016/07/20 04:59

ご連絡ありがとうございます。 ご指定いただいた部分のエラーですが、 確認したところ特にエラーは発生しておらず、以下の結果でした。 (私の貼付けミスのようです。失礼しました。) - $this->log($user); ``` Error: { "id": 1, "email": "test@test.test", "created": "2016-06-27T13:30:57+0900", "modified": "2016-07-20T13:32:32+0900" } ``` - $this->log($user, "debug"); ``` Debug: { "id": 1, "email": "test@test.test", "created": "2016-06-27T13:30:57+0900", "modified": "2016-07-20T13:32:32+0900" } ``` Debugにも表示してみましたが結果は同じとなりました。 他に確認するところはありますでしょうか。 よろしくお願いいたします。
coba-coba

2016/07/20 05:36 編集

そうでしたか。 tmp/cacheのキャッシュを削除して、IDを直打ち・下記のように最低限のコードを実行するというのは試しましたか? public function index() { $trUsers = TableRegistry::get("Users"); $user = $trUsers->get(1); $this->log($user); }
zaltsu9

2016/07/20 05:57

ご連絡ありがとうございます。 ご指摘頂いた内容で tmp/cacheの削除および、$trUsers->get(1);で実装したところ、 私の期待する情報を取得することが出来ました! ありがとうございます! また、tmp/cacheを削除した後に $user = $trUsers->get(1);を$trUsers->get($id);へと戻して実装したところ 上記と同じ期待する情報を取得することが出来ました。 以上よりcacheが問題だったようです。 お手数をおかけしましたが、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問