通知
すべてクリア
31/08/2020 8:41 pm
CakePHPでデータを更新する処理について質問です。
- 指定したNameのレコードが存在する場合、該当レコードのWinsを加算して格納
- 存在しない場合、新規レコードを作成し登録
上記の処理のうち1が上手くいかず、Winsが加算されない状態です。
解決方法をご教授いただけますと幸いです。
解決方法をご教授いただけますと幸いです。
自身では下記を試しております。
・Unity、ARCから実行するもともに2のみ成功。
・Unity、ARCから実行するもともに2のみ成功。
31/08/2020 8:43 pm
エラー文を見てみると、Winsカラムを+1する前にtoArray()で配列に置き換えてしまっている点が原因かと思われます。
また、受け取った$nameで更新対象のレコードを指定する部分も不足しているように思えます。
下記VoteSystemでPopulalityを+1している部分の実装を参考に、該当レコードの取得、更新、保存処理を行ってみてください。
テーブルを取得する部分はできていると思います。
//Postデータの取得
$postData = $this->request->getData('id');
//レコードの更新
$voteSystemTable = $this->getTableLocator()->get('votesystem'); //votesystemテーブルの取得
$tarrgetRecord = $voteSystemTable->get($postData); //votesystemテーブルから該当IDのレコードを取得
$tarrgetRecord->Popularity = $tarrgetRecord['Popularity'] + 1; //レコードのPopularityを更新
$voteSystemTable->save($tarrgetRecord); //更新したレコードの保存
This post was modified 4年前 2回 by Teacher
31/08/2020 8:46 pm
有難うございます。
VoteSystemを参考にさせていただきました。下記質問です。
VoteSystemを参考にさせていただきました。下記質問です。
また、受け取った$nameで更新対象のレコードを指定する部分も不足しているように思えます。
写真の記述で更新対象のレコードのみを取得している認識でしたが、認識の誤り、若しくは記述に誤りがあるということでしょうか?
今回の場合、主キーでの検索でないためgetが使えない状況となっております。
今回の場合、主キーでの検索でないためgetが使えない状況となっております。
31/08/2020 8:47 pm
データベースの件ですが写真の記述で解決致しました。
原因と解決方法を下記します。
・クエリの実行をtoArrayで行っていた。
→firstメソッドでクエリを実行に変更。
・toArrayで取得した配列に対して加算処理をしようとしていた(Entityクラスで取得していると思っていた)。
→firstメソッドによりEntityクラスで取得したため解決。 https://teratail.com/questions/43582