で別のページに関連したレコードのフォームを作成します。私はこのモデルを持っているCakePHPの
School hasMany Teachers
私は「この学校のための新しい先生を追加」配置する必要があり、私の学校コントローラ、上のビューアクション/ページを持っていますリンク。このリンクは教師のページを追加する必要があり、新しい教師は前のページの学校を参照する必要があります。私は次のように、私のリンクにクエリ文字列を追加することでこれをやっている
:
<a href="/teachers/add?school_id=4">Add new teacher for this school</a>
はその後、私のTeachersControllerに私は$ school_idとして私の見解(先生:: add.ctp)にこの値を渡すと作成します以下のようなadd.ctpの隠し入力:私は先生がフォームを追加提出するので
$this->hidden('school_id', ['value' => $school_id])
は、そのschool_idフィールドが正しく設定されています。
これを行うより良い方法はありますか?私は私のソリューションとクエリ文字列トリックに本当に満足していない(1つは、アドレスバーでこれを変更することができます...)。
ありがとうございます
を行うことができます冗長だと思います。私の問題は何らかのコンテキストを維持することだと思うので、Sessionコンポーネントを使って私のschool_idを保存して消費するのはどうですか?それはよりクリーンな方法だろうか?私は私の学校でそれを設定することができます:::アクションを見て、私の教師でそれを消費::追加... – Flo
別のブラウザのタブで別の学校を開くとどうなりますか?最後に開いたタブは 'schoold_id'をセッションに保存します。しかし、最初に開いたタブに移動して[先生を追加]をクリックすると、最後の学校に先生を追加し終わります。 – arilia
実際には悪い考えです。)...私の使用例では、この状況は起こりません。 – Flo