###前提・実現したいこと
CakePHP3でマスタ管理画面を作成しています。
親テーブルのレコード削除を行う際、紐付いている子テーブルのレコード
の有無を確認したいと思い、下記のコードを書きました。
するとviewファイル(delete.ctp)がないというエラーメッセージが表示されました。
delete()はindex.ctpからpostLink()で呼び出しています。
下記コードの
if(count($worldArea->countries) === 0){}
を書くとエラーが発生します。
なぜフォームの描画が呼び出されるのでしょうか?
また、エラーを発生させず紐付いているテーブルのレコードを確認するにはどのように書けば良いでしょうか?
###発生している問題・エラーメッセージ
Error: The view for WorldAreasController::delete() was not found
###該当のソースコード
php
1 public function delete($id = null) 2 { 3 $this->request->allowMethod(['post','delete']); 4 $this->Countries = TableRegistry::get('Countries'); 5 //worldAreasとcountriesは1:nの関係 6 $worldArea = $this->WorldAreas->get($id, [ 7 'contain' => ['Countries'] 8 ]); 9 //紐付いているCountryのチェック 10 if(count($worldArea->countries) === 0){ 11 if ($this->WorldAreas->delete($worldArea)) { 12 $this->Flash->success(__('削除しました。')); 13 14 return $this->redirect(['action' => 'index']); 15 } else { 16 $this->Flash->error(__('削除できませんでした。')); 17 } 18 }else{ 19 $this->Flash->error(__('紐付いているレコードがあります。')); 20 } 21 $this->set(compact('worldArea')); 22 }
###試したこと
$this->autoRender = false;を記載すると、真っ白な画面になりました。viewが描画されなくなったためだと思います。
###補足情報(言語/FW/ツール等のバージョンなど)
CakePHP3,PHP7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/23 03:22