PHPシェアする今回はCakePHPでデータベースにデータを新規に保存する方法について紹介します。データベースにデータを保存するにはエンティティが必要です。作業環境は下記の通りです。参考サイトサンプルコード紹介の前に、今回の内容を実装したコードとその動作に必要なテーブルを作成するSQL文を記載します。これから説明する内容はこのコードをベースにしています。保存するデータは一旦連想配列に詰め、その連想配列のキーは保存先のデータベースのカラムと同じ名前でなければなりません。今回の場合、最初に作成したusersテーブルにname、nicknameのカラムがあるので、コントローラー側の配列savedataではキーをnameとnicknameにしています。"EBE";エンティティの作成データの保存にはエンティティが必要な為、エンティティを作成します。エンティティの作成にはnewEntityを使うことでできます。newEntityとはテーブルクラスのインスタンスのメソッドでエンティティを作成する働きをし、連想配列を引数として渡す事でそれをエンティティへ変換することもしています。$userTable->newEntity($savedata);エンティティの内容をデータベースに保存する最後に、エンティティをデータベースに保存する為saveを使います。saveはエンティティの内容をデータベースに書き込むことができるメソッドで、データベースのインスタンスに対して実行されます。$usersTable->save($users);まとめデータを保存するにはデータは一旦連想配列に詰めなければならない。それをnewEntityメソッドに引数に渡して、エンティティへの変換を行う。その後エンティティをsaveメソッドを使ってデータベースに書き込む。(entity)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典kaji昨年大学を卒業したばかりのエンジニアです。CakePHPを勉強中です。拙い部分も多いですがよろしくお願いします。スポンサーリンクシェアするフォローするkaji関連記事CakePHPで同じカラムに複数のカスタムバリデーションをセットする方法CakePHPのバリデーションの話です。同じカラムに対して複数のカスタムバリデーションを設定したかったのですが、1つしかバリデーションが効かなかったので原因を追求しました。記事を読むCakePHP3のバリデーションで確認用パスワードの一致確認CakePHPで入力されたパスワードと、確認用パスワードが一致しているか、バリデーションで確認する方法を紹介します。コントローラー側でチェック用の関数を使ったりするより、バリデーションでチェックした方が一石二鳥以上だと思います。記事の一覧を動的に表示させ、記事毎に設置させているボタンを押すと、対象の記事の「記事タイトル」を使った確認ダイアログが表示されるようにしたかった。CakePHPで色々処理を書いていた中、JavaScriptを連動させてみました。記事を読むCakePHP3で作成したシェルをcron設定する(バッチ処理)CakePHPで作成したスクリプトの実行コマンドをcronに設定することで、バッチ処理を実現する方法です。以前、CakePHPでシェルを作成する方法を記事にしたので、cronに時間とコマンドの設定方法をメインに説明していきます。記事を読むEC-CUBE3でテーブルにカラムを追加EC-CUBE3のプラグインでは、基本的に既存テーブルに対してカラムを追加するような拡張は推奨されていません。新規にテーブルを作るよりも、既存テーブルにカラムを追加した方が効率的なこともあるので、そんな時のためにやり方を紹介しています。記事を読むCakePHP3で最低限のログイン画面(Auth認証)を作ってみたCakePHP3でログイン処理を実装しました。今回は余計な設定はできるだけ省いたシンプルなログインフォームを紹介します。これまでログイン時の処理を感覚だけで理解していましたが、処理を追うことで何をしているか理解が深まった気がします。記事を読むEC-CUBE3でプラグインを使ったテーブルの作り方EC-CUBE3のプラグインでテーブルを作成する手順の紹介です。テーブルとエンティティをマッピングするための設定ファイルdcm.ymlを作り、その後にEC-CUBE3で用意されているコマンドを実行して、必要なファイルやテーブルを作成します。記事を読むCakePHPのvalidationDefaultで重複チェックをする方法CakePHP3のvalidationDefaultで重複チェックを行う方法を説明いたします。保存時のbuildRulesではなくvalidationDefaultで行うことで、入力後の確認画面に遷移する前にチェックができるようになります。記事を読むEC-CUBE3プラグインの雛形の作り方EC-CUBE3.0.13以降で搭載されたプラグインジェネレーターを使って、プラグインの雛形をコンソールコマンドで簡単に生成出来るようになったので、その使い方の紹介です。記事を読むCakePHPでafterDeleteイベントが呼ばれなかった時の話CakePHP3でafterDeleteイベントが呼ばれないことがあったので調査しました。その際に、原因がdeleteAllだと判明したので、deleteAll時にafterDeleteイベントを呼ぶ方法についても調査しました。