0

データベースに「District」というテーブルがあります。

+----+---------+-------------+----------+------+------------------------------------------------+-----------+
| id | version | description | homepage | logo | name                                           | region_id |
+----+---------+-------------+----------+------+------------------------------------------------+-----------+

だから、私のコントローラーには次のものがあります:

def show = {
        def districtInstance = District.get(params?.id)
        println districtInstance
        println params
        if(!districtInstance){
            flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'district.label', default: 'District'), params.id])}"
            redirect(action : "list", params?.id)
        }
        else{
            [districtInstance : districtInstance]
        }
    }

私は完全な行を見ることを期待していますが:

| 71 |       0 | bogus  |          |      | bogus                                      |         4 |

私は見るだけです:

bogus

コンソールで。行全体にアクセスするにはどうすればよいですか? (特にdistrictInstance.region_id?)

4

2 に答える 2

2

println districtInstanceメソッドの出力のみを出力しますtoString()println districtInstance?.dump()すべてのクラス フィールドを含む、より多くの出力を表示するために使用します。ただし、これはデータベース クエリの結果ではなく、Groovy オブジェクトであるため、データベース ビューのようには見えません。

質問に基づく更新: region_id が必要な場合districtInstance.regionIdは、追加のデータベース呼び出しを必要としない方法で取得できます。

于 2012-09-02T20:11:30.473 に答える
1
println districtInstance?.region.id

Groovy、および一般的なオブジェクト指向言語では、そのようなクラス プロパティをナビゲートできますがデメテルの法則に注意する必要があります。

于 2012-09-02T20:23:00.350 に答える