2016-12-15 5 views
0

Cakephpを使用して病院管理システム用の簡単なWebサイトを作成します。患者のコントローラにフォームを生成し、PatientIDをユーザからの入力として取得する検索メソッドが必要です。次に、その特定の行のすべての値の結果を生成します。どのようにすればいいのですか?モデル、コントローラー、テンプレートにどのような変更を加える必要がありますか?事前にフォームを使用して特定の行を検索してデータを取得し、Cakephpで詳細な結果を取得する

<?php 
namespace App\Model\Table; 

use Cake\ORM\Query; 
use Cake\ORM\RulesChecker; 
use Cake\ORM\Table; 
use Cake\Validation\Validator; 

public function initialize(array $config) 
{ 
    parent::initialize($config); 

    $this->table('patients'); 
    $this->displayField('Patient_ID'); 
    $this->primaryKey('Patient_ID'); 
} 

/** 
* Default validation rules. 
* 
* @param \Cake\Validation\Validator $validator Validator instance. 
* @return \Cake\Validation\Validator 
*/ 
public function validationDefault(Validator $validator) 
{ 
    $validator 
     ->allowEmpty('Patient_ID', 'create'); 

    $validator 
     ->requirePresence('Name', 'create') 
     ->notEmpty('Name'); 

    $validator 
     ->requirePresence('Address', 'create') 
     ->notEmpty('Address'); 

    $validator 
     ->date('DOB') 
     ->requirePresence('DOB', 'create') 
     ->notEmpty('DOB'); 

    $validator 
     ->allowEmpty('Contact'); 

    $validator 
     ->requirePresence('Gender', 'create') 
     ->notEmpty('Gender'); 

    $validator 
     ->allowEmpty('Blood_Group'); 

    return $validator; 
} 
} 

感謝を次のように

PatientsTableです。

答えて

0

すでに作られたCakePHPで検索するためのすばらしいプラグインの1つを調べてください。 https://github.com/friendsofcake/search

次にあなたが必要となるすべてはこれです:テーブルクラスで

Initializeメソッド:

public function initialize(array $config) 
{ 
    parent::initialize($config); 

    $this->table('patients'); 
    $this->displayField('Patient_ID'); 
    $this->primaryKey('Patient_ID'); 

    // Add the behaviour to your table 
    $this->addBehavior('Search.Search'); 

    // Setup search filter using search manager 
    $this->searchManager() 
     ->value('Patient_ID'); 
} 

例コントローラ:

public function initialize() 
{ 
    parent::initialize(); 
    $this->loadComponent('Search.Prg', [ 
     'actions' => ['index'] 
    ]); 
} 

public function index() 
{ 
    $query = $this-> Patients 
     ->find('search', ['search' => $this->request->query]); 
    $this->set('patients', $this->paginate($query)); 
} 

その後、あなたは、単に/のようなURLクエリパラメータを使用することができますpatient/ID = Patient_ID = 14にその値を持つ患者のみを表示する。

これは、CakePHPのフォームヘルパーを行うことができます。

echo $this->Form->create(); 
echo $this->Form->input('Patient_ID'); 
echo $this->Form->button('Search', ['type' => 'submit']); 
echo $this->Form->end(); 

Discalimer:私はからすべてのサンプルコードを盗んだ:あなたは、テーブルで使用するフィルタの種類をチェックアウトする必要がありhttps://github.com/friendsofcake/search

、それらは知っている素晴らしいです:https://github.com/friendsofcake/search#filters - いつものように、readmeファイルを読んでください! :-)

幸運な検索とフィルタリング!

関連する問題