エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3チュートリアルで日付と時刻のDateTimeでエラーが出たときの対処方法

      2017/10/28

CakePHP3のチュートリアルの「ブックマークチュートリアル」のエラー

 

CakePHP3のチュートリアルの「ブックマークチュートリアル」

 
CakePHP3には、CakePHP3を使ってプログラムを開発する仕組みを理解するためのチュートリアルが用意されています。
その一つに「ブックマークチュートリアル」があります。
https://book.cakephp.org/3.0/ja/tutorials-and-examples/bookmarks/intro.html
 
 
そのチュートリアルを読みながら、その中にある「カスタム Finder メソッド」のリンクについて調べていました。
 
その際、「データの取り出しと結果セット」の「データのロードに Finder を使う」について調べている際、下記のコードがありました。
 

 
URLとしては下記になります。
https://book.cakephp.org/3.0/ja/orm/retrieving-data-and-resultsets.html#finder
 
 
実は、これをこのまま実行すると下記のエラーがでます。
 

 
 
「DateTime」がないということでしたので、下記の「日付と時刻」を調べ、
https://book.cakephp.org/3.0/ja/core-libraries/time.html
 
下記のクラスを呼び出す宣言を追加しました。
 

ですが、改善しませんでした。
 
 
CakePHP3では、namespace(名前空間)が使用されるようになりましたので、下記の様に記述をしても DateTimeがありません(’App\Controller\DateTime’ not found)のエラーが出るようになってしまっています。
 

 
 
この対応をするためには「DateTime」の前に「\」を編集して、下記の様にする必要があります。

 
CakePHP3のチュートリアルの「ブックマークチュートリアル」の場合は、先に表示したプログラムの 3行目を下記の様にする必要があります。
 

 
 
もしくは、プログラムの最初に下記の宣言をする必要があります。

 
 
ちなみに、下記のページには「new DateTime(‘2014-01-01’)」のような表記が 7ヵ所ありますが、正しく「\」が編集されているのは 1ヵ所だけのようでした。
 
データの取り出しと結果セット
https://book.cakephp.org/3.0/ja/orm/retrieving-data-and-resultsets.html#finder
 
CakePHP3のドキュメントは整備されていないところもありますので、まだまだこれから、という感じでしょうか。
 
 

CakePHP3の関連記事

CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールする
CakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 3.x 4.x 5.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP3のアソシエーションでJOINのタイプのLEFT、INNERを切り替えながら使う方法
CakePHP3のアソシエーションでJOINのタイプのLEFT、INNERを切り替えながら使う方法

CakePHP3でテーブルのアソシエーションしたデータの取得をコントローラー側でINNERかLEFTを指定する方法を解説。TableファイルにINNERで指定していてもController側で変更ができる。

CakePHP 2.3 デバッグキット(DebugKit)超初心者向けフォロー講座

CakePHP初心者に向けてデバッグキット(DebugKit)のインストール方法、はまりポイントを解説。

CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。

CakePHP3でajaxを利用する処理の実装方法を解説。プルダウンを変更するとデータベースの値を取得し検索結果の内容を変更するというような処理を想定。CakePHP3.6以降の CSRF対策対応済。

国際化と地域化の翻訳機能「__()」を使って定数に変数を埋め込む方法
国際化と地域化の翻訳機能「__()」を使って定数に変数を埋め込む方法

CakePHP4で定数に変数を埋め込み、翻訳機能「__()」で変数に値を入れる方法を紹介。定型の文章の一部だけを置換したい場合に利用すると便利。

CakePHP4のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説
CakePHP4のユーザ管理・ログイン認証プラグインCakeDC/Usersのインストール解説

CakePHP4のユーザ管理プラグイン Usersは、ユーザ登録、メール認証、ログイン認証、ユーザ管理、権限管理、reCAPTCHAなど会員制のサイトを簡単に実現可能。その導入方法、カスタマイズ方法を解説。

CakePHP3で静的ページの作成は webrootか pagesを使う。トップページを参考に解説
CakePHP3で静的ページの作成は webrootか pagesを使う。トップページを参考に解説

CakePHP3で静的なページを設置する場合の方法(webrootとpagesとを活用する方法)を解説。pagesの解説はデフォルトのトップページがどう表示されているかを参考に解説。ルーティングの機能も。

CakePHP4のフラッシュメッセージの表示場所、デザインを変更する方法を解説
CakePHP4のフラッシュメッセージの表示場所、デザインを変更する方法を解説

CakePHP4のエラーメッセージ、完了メッセージなどを表示するフラッシュ処理の解説。Controller、レイアウトファイル、テンプレートファイルでそれぞれ処理を指定する。

CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法
CakePHP4のController内でViewテンプレート、レイアウトの変更設定を記述する方法

CakePHP4でテンプレートやレイアウトファイルをデフォルトから変更する場合は「render()」を使用するが、記述場所はできるだけコントローラー内の最後の方に書く方がいい。

CakePHP3にデイトピッカー jQuery UI DatePickerを実装する手順の解説
CakePHP3にデイトピッカー jQuery UI DatePickerを実装する手順の解説

CakePHP3にjQuery UIのDatePickerを実装する手順を説明。併せて、デイトピッカーを設置に関連するCakePHP3の解説と、テーマを変更したり、表記を変更するカスタマイズする方法なども紹介。

CakePHP4 のコマンドプログラムからコンポーネントを読み込む方法解説
CakePHP4 のコマンドプログラムからコンポーネントを読み込む方法解説

CakePHP4でコマンドプログラムからコンポーネントを呼び出す方法を解説。コントローラーから呼び出すときと大差はないが、use句でコンポーネントを指定する事がポイント。