いつもお世話になっています。 タイトルの通りなのですが、
こちらのページを参考に検索機能を作っていたのですが、
該当レコードがない時の処理が書いてなくて困っています。下記にまとめましたのでどなたか聡明なエンジニア様お助けいただけたら幸いです。
###前提・実現したいこと
cakephp3系を使用した人材管理システムを現在作成しています。
全テーブルに社員番号のカラム(number)が仕込んであり、検索ボックスからpostで投げた社員番号($find)テーブルのnumberカラムにあるか調べています。
こちら、もし該当の社員番号がない場合、ない旨を画面に表示したい所存であります。
###該当のソースコード(view)
html
1//検索ボックス 2<?= $this->Form->create() ?> 3 <fieldset> 4 <?php 5 echo $this->Form->input('find',[ 6 'label'=>[ 7 'text'=>'社員番号を入力' 8 ], 9 'required'=>'required' 10 ]); 11 echo $this->Form->button('送信'); 12 ?> 13 </fieldset> 14<?= $this->Form->end() ?> 15 16//検索結果 17<table> 18 <tbody> 19 <?php foreach ($×××× as $××××): ?> 20 <p>下記で登録されています</p> 21 <tr> 22 <td><a href="該当テーブルのリンク">テーブル名:<?= h($××××->number) ?></a></td> 23 <?php endforeach; ?> 24 <?php foreach ($○○○○ as $○○○○): ?> 25 <td><a href="該当テーブルのリンク">テーブル名:<?= h($○○○○->number) ?></a></td> 26 <?php endforeach; ?> 27 <?php foreach ($△△△△ as $△△△△): ?> 28 <td><a href="該当テーブルのリンク">テーブル名:<?= h($△△△△->number) ?></a></td> 29 <?php endforeach; ?> 30 <?php foreach ($□□□□ as $□□□□): ?> 31 <td><a href="該当テーブルのリンク">テーブル名:<?= h($□□□□->number) ?></a></td> 32 <?php endforeach; ?> 33 </tr> 34 </tbody> 35</table>
###該当のソースコード(controller)
php
1//※検索ボックスがUsersページ置いているためUsersのコントローラーに記載しています。 2 3<?php 4namespace App\Controller; 5 6use App\Controller\AppController; 7//他のテーブルを使用 8use Cake\ORM\TableRegistry; 9 10/** 11 * Users Controller 12 * 13 * @property \App\Model\Table\UsersTable $Users 14 */ 15class UsersController extends AppController 16{ 17 18 /** 19 * Index method 20 * 21 * @return \Cake\Network\Response|null 22 */ 23 24 public function initialize(){ 25 parent::initialize(); 26 //他のテーブルを使用 27 $this->×××× = TableRegistry::get('××××'); 28 $this->○○○○ = TableRegistry::get('○○○○'); 29 $this->△△△△ = TableRegistry::get('△△△△'); 30 $this->□□□□ = TableRegistry::get('□□□□'); 31 } 32 33 public function index() 34 { 35 36 //レイアウトの指定 37 $this->viewBuilder()->layout('users'); 38 39 //検索 変数宣言 40 $×××× = []; 41 $○○○○ = []; 42 $△△△△ = []; 43 $□□□□ = []; 44 45 //検索 条件式 46 if ($this->request->is('post')) { 47 $find = $this->request->data['find']; 48 $×××× = $this->××××->find()->where(["number" => $find ]); 49 $○○○○ = $this->○○○○->find()->where(["number" => $find ]); 50 $△△△△ = $this->△△△△->find()->where(["number" => $find ]); 51 $□□□□ = $this->□□□□->find()->where(["number" => $find ]); 52 } 53 54 //検索 結果のセット 55 $this->set('××××', $××××); 56 $this->set('○○○○', $○○○○); 57 $this->set('△△△△', $△△△△); 58 $this->set('□□□□', $□□□□); 59 60 } 61//〜以下略〜
###現在の状況
該当の検索結果があると表示されます。
該当の検索結果がない場合は何も起きません。
###補足 table
テーブルの1つです。もちろん内容はダミーです
###補足
var_dumpで変数$××××を調べたら他のレコードも入っているみたいでした。
また補足があれば書きますので宜しくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/30 19:34
退会済みユーザー
2016/07/30 19:37