1

私のコントローラーとメソッドはセクションとページにマップされるので、それを使用して現在のナビゲーション項目を強調表示し、ページ テンプレートを表示します ($this->router->class.. を介して)。しかし、私は少し問題を抱えています。医師のテスト結果には次の構造があります。

website.com/doctor/results/

そのため、'doctor' コントローラには、結果のページ リストをロードするメソッド 'results' があります。すべて良い。

ただし、リストされた各結果の横にリンクがあります。つまり、そのテストの詳細を表示するための「詳細を表示」です。機能的には、このリンクをクリックすると、その特定のテストの詳細ページを表示する独自のメソッド「ビュー」を備えた「テスト」コントローラーに移動します。しかし、目に見えて、まだ「医師」セクション、「結果」サブセクションにいるはずです。

それを達成する方法がわかりませんか?ナビゲーション全体を再考することなく (これまではかなり良いように見えました)。

4

2 に答える 2

0

これを行う一般的な方法は、 routeを使用することです:

ファイル/application/config/routes.phpに、次のルートを追加します。

$route['doctor/test-results/(:any)'] = 'test/view/$1';

URL セグメントをどこtest-resultsに置きたいか (リンク先のページ)。

これは基本的に次のように述べています。

doctor/test-results/something実際にロードする必要があるすべての URLtest/view/something

ルートでかなりのことができます。ルーティングの詳細については、ユーザー ガイドをご覧ください

うまくいかない場合は、 URI クラス$this->router->class/methodのいくつかの関数を試してみてください。

于 2011-05-06T09:51:46.550 に答える
0

コントローラーのディレクトリに「doctor」というサブディレクトリを作成し、「result」をコントローラー名として使用できます。

すべての結果を表示するには、メインの「index()」メソッドを使用します。次に、テストを表示する別のメソッド呼び出し「test()」を作成できます。

例:

ディレクトリ構造:

application/controllers/doctor/results.php

results.php ファイルは次のようになります。

function index()
{
// all results here
}

function test()
{
// test result display here
}
于 2011-05-06T09:39:13.340 に答える