2016-12-22 16 views
0

私は病院管理システムのウェブサイトを作成しています。私は患者のコントローラと医療レポートコントローラを持っています。すべての患者は「レポートを見る」という行動をとる。ユーザーがビューレポートをクリックすると、医療レポートに誘導され、患者コントローラのPatient_idに関連するフィールドのみが表示されます。それについてどうすればいいですか?1つのコントローラからリダイレクトされたときに別のコントローラに特定の行を表示する

患者テーブル:

<?php 
namespace App\Model\Table; 

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

class PatientsTable extends Table 
{ 
    public function initialize(array $config) 
    { 
     parent::initialize($config); 

     $this->table('patients'); 
     $this->displayField('Patient_ID'); 
     $this->primaryKey('Patient_ID'); 
     $this->addBehavior('Search.Search'); 
     $this->searchManager() 
      ->value('Patient_ID'); 
    } 

    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; 
    } 
} 

MedicalReportテーブル:

<?php 
namespace App\Model\Table; 

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

class MedicalReportTable extends Table 
{ 
    public function initialize(array $config) 
    { 
     parent::initialize($config); 

     $this->table('medical_report'); 
     $this->displayField('Report_No'); 
     $this->primaryKey('Report_No'); 
    } 

    public function validationDefault(Validator $validator) 
    { 
     $validator 
      ->requirePresence('Patient_ID', 'create') 
      ->notEmpty('Patient_ID'); 

     $validator 
      ->requirePresence('Report_No', 'create'); 

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

     $validator 
      ->date('C_date') 
      ->requirePresence('C_date'); 

     $validator 
      ->requirePresence('Room_No'); 

     $validator 
      ->allowEmpty('Diet'); 

     $validator 
      ->numeric('Payment') 
      ->requirePresence('Payment'); 

     return $validator; 
    } 
} 
+0

CakePHPの初心者のようにモデル、コントローラ、またはビューのみを投稿しました。初心者のチュートリアルを読んで始めてください。http://book.cakephp.org/3.0/ja/tutorials-and-examples/blog/blog.html単一のアイテムのビューを作成する方法についても説明します。この質問は閉じなければなりません。 –

答えて

0

あなたがそうのような医療レポートを表示するためのURLを作成するために、CakePHPのHtmlHelperを使用することができます。

<?php 
echo $this->Html->link(
    'View Report', 
    ['controller' => 'MedicalReports', 'action' => 'view', $MedicalReport->id], 
    ['class' => 'button', 'target' => '_blank']); 

これでしょう次のようなものを作成してください:<a href="/medical-reports/view/123" class="button" target="_blank">View Report</a>

HTMLリンクを作成する一般的な方法。に$ optionsを使用して、要素の属性と、$タイトル をエスケープする必要があるかどうかを指定します。

HtmlHelper::link();

詳細についてはこちらをご覧くださいMedicalReportsController.php

あなたのコントローラでは、actionのためのコードを定義するview()関数を作成することができます。

<?php // src/Controller/MedicalReportsController.php 

class MedicalReportsController extends AppController { 
    public function view($id) 
    { 
     // Fetch the medical report from the database based on ID 
     $medicalReport = $this->MedicalReports->get($id); 

     // Pass it along to the view 
     $this->set('medical_report',$medicalReport);   
    } } 

set()機能は、コントローラからビューにデータを送信します。

コントローラからビューにデータを送信する主な方法は、Controller::set()メソッドです。

関連する問題