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

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

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

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

Q&A

解決済

1回答

1455閲覧

cakephp1.3から2.x系にアップグレード

lol

総合スコア85

CakePHP

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

0グッド

0クリップ

投稿2017/01/20 05:51

編集2017/01/20 05:57

upgrade シェルを使ってアップグレードを行いました。
その後、
app/webroot/index.php上書き
core.phpやbootstrap.php、database.phpなども環境に合わせました。

とりあえず、上記まで行い、アクセスしてみると以下のエラーが出力されております。

Call to a member function is() on a non-object in [/var/www/html/lib/Cake/Controller/Component/SecurityComponent.php, line 388]
対象コードはいかになりますが、CakerequestにもISはあったのですが、、、なぜエラーとなるかが、、、、わかりません。
388 if (!$this->request->is('ssl')) {
389 if (!$this->blackHole($controller, 'secure')) {
390 return false;
391 }
392 }

cakephp1.3から2.x系にアップグレードしたいだけですが、、、
もしどなたか何か、情報があればお願いします。

また、アップグレード手順が違う!!!というのであれば、手順も教えていただければ幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーの内容は、non-objectはis()関数をコールできないというものです。
原因は$this->requestがnullだからだと思います。componentはrequestを直接参照できないと思います。
※cakephp1ではできたのかもしれません(そこは調べていないです)

controllerを経由して参照すればいいと思います。
参考:CakePHP2でComponentからHTTPリクエストのクエリパラメータを取得する方法

(追記:コメント欄のまとめ)
問題はSecurityComponentでした。Cakephpのコード見てみたところ、requestがnullになるケースはわからなかった。該当する問題やバグがないか調べたところ、類似している以下の問題を見つけて、実際にコンストラクタをオーバライドしているのが影響していたようです。
http://d.hatena.ne.jp/cakephper/20130108/1357633417

投稿2017/01/20 06:06

編集2017/01/20 10:09
popobot

総合スコア6586

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

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

lol

2017/01/20 06:09

回答ありがとうございます! エラーに関しては理解しましたが、 このエラーの場所は/lib/Cakeの部分で、2.6のlibを持ってきたものですが、 こちらを直接修正するということですか??
popobot

2017/01/20 06:15

あー、Cakephp本体のSecurityComponent内で起きているということですか?Cakephp本体を直すのはおかしいので、そうなってしまう原因が他にあると思います。 詳細なバージョンを教えてください。2.6.?でしょうか。あとCakephp側のコードも見てみます。
lol

2017/01/20 06:16

あ、、、すみません。 cakephp2.6です。 お手数おかけしますが、よろしくお願いします!
popobot

2017/01/20 08:03

あ、すみません。三桁目のバージョンが知りたいです。2.6.0とか
popobot

2017/01/20 08:16 編集

Cakeのコードを見てみましたけど、requestがnullになるケースはよくわかりませんでした。 ちなみに、エラーがでるのはSecurityComponentを使っているコントローラからですか? あとSSLに強制するrequireSecureオプションを使っていますか?
popobot

2017/01/20 08:18

当たっているかわかりませんが、近い問題がありましたので、載せておきますね http://d.hatena.ne.jp/cakephper/20130108/1357633417 コントローラのコンストラクタとかを継承していないか確認してみてください。
lol

2017/01/20 09:15

ありがとうございます!!!まさに、これでした。!!
popobot

2017/01/20 10:10

解決できて良かったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問