とあるレコードをUPDATEしたいのですがうまくいきません。
アソシエーションを解除すればうまくいくかもしれないと見当をつけています。
実現したいSQLと、実際に書いたコード
以下実現したいSQLです(エイリアス等は省いています)
UPDATE articles SET sub_id = 1111 WHERE id = 15
以下、CakePHP3で記述しているコードです。
こちらのサイトを参考にしました。
$this->Articles= TableRegistry::get('Articles'); $update_articles = $this->Articles->get(15); $update_articles ->sub_id = 1111; if($this->Articles->save($update_articles)){ echo 'Success'; }else{ echo 'Error'; }
上記コードでは、SuccessもErrorも出力されません。
試しに$this->Articlesを見てみると、associationsに別テーブルの名前が入っていました。
これはModel/Table/ArticlesTable.phpで下記の様に定義されていました。
$this->belongsTo('SubArticles', ['className' => 'SubArticles']) ->setForeignKey('sub_article_id') ->setJoinType('INNER');
これが原因でsaveがうまくいっていないのかと推測しています。
そもそもの書き方が違うのか、また、associationsが原因であればそれをを消す方法を知りたいです。
お手数ですが、回答よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。