1

ハプニングのフォームを作ろうとしています。ハプニングは によって Places テーブルを参照しますplace_id

たとえば、"OktoberFest" というイベントの place_id は 123 で、表 Places to München に対応しています。

モデルで宣言されている関係は次のとおりです。

モデルプレイスの場合:

public function happenings()
{
    return $this->hasMany('Happening');
}

モデルハプニングの場合:

public function place()
{
return $this->belongsTo('Place');
}

model Happening には、それを Place にリンクする place_id フィールドがあります。

{{Form::model($happening, array('route' => array('happenings.update', $happening->id)...}}フォームの開口部としても使用しています

問題 1:{{Form::text('......')}}開催中のオクトーバーフェストを編集するときに、ミュンヘンが適切に事前入力されるを作成する方法は?

問題 2:そのフィールドを ajax autosuggest として機能させようとしていました (つまり、3 文字が入力されるとすぐに Places テーブルから提案を取得し始めました)。いくつかの実装を確認しましたが、問題 1と正しく混在していないようです

問題1を試して解決するために、ここで解決策を試しました Laravel 4 Form builder Custom Fields Macro

しかし、私はそれを機能させることができませんでした。

長い質問です。スタック オーバーフローに関する私の最初の質問です。しばらくお待ちください :)

4

1 に答える 1

1

ハプニングが「place_id」列を介して Place にリンクされている場合、モデル/テーブルに保存する ID を指定する必要があります。私が考えることができるいくつかの方法があります:

  • select のラジオで利用可能な Places のリストを作成します。名前は「place_id」、値は Place の ID で、値は title のようなものです。

  • ラジオを表示したり、オートコンプリートでテキストフィールドを選択したりする代わりに、多くの場所を取得した場合に最適なソリューションです。実装方法については詳しく説明しませんが、一般的な考え方は、入力された場所名をオートコンプリートし、その場所の選択時にその場所の ID を「placed_id」という名前の非表示フィールドに入れることです。

フォームを保存した後、投稿された place_id を使用してモデルを保存します (ID が有効で存在するかどうかを確認し、ユーザー入力を信頼しないでください)。

于 2013-06-20T11:21:42.940 に答える