0

私はCakePHP 2.0を使用して、usercourseという2つのモデルがあります。 これらはHABTMに接続されているため、多対多の関係になっています。CakePHP - > HABTM - >コントローラ - ビュー複数の値を選択し、正しい順序でデータベースに保存します。

私はコースを作成、読み込み、更新、削除することができますが、それは大丈夫です。 しかし、ユーザーはいくつかのコースに参加することができます。

ユーザーの追加ビューでは、複数の選択フィールドが作成されるため、これらのコード行で多数のコースを選択できます。

$this->set('courses', $this->User->Course->find('list')); 
echo $this->Form->input('Course'); 

複数の値を選択できますが、問題は順序です!私のコースには、アプリケーションのユーザーが管理できるオーダーが必要です(コースの開始日/終了日は関係ありません)。

例:私はid = 10のユーザーを持っています。 コースを選択したり、正しい順序で1つ以上のものを選択することは可能です。 私は約。 IDが1-200 で200コースだから、可能なはずです。

* UserId 10 -> no course 
* UserId 10 -> CourseId 23 
* UserId 10 -> CourseId 23, CourseId 11, CourseId 45, CourseId 10, CourseId 199 (the order is important) 

どのように私はこれを処理するために、私の追加/編集ビューで、私のコントローラでこれを行うことができますか?

よろしくお願いいたします。

答えて

2

コーステーブルでは、別の列を追加する必要があります。

この列を制約として使用します。データをJSON形式またはシリアル化された形式で格納することができます。列のデータを使用して、検索クエリでコースを並べ替えることができます。

このビューでは、間違ったコースの選択を制限し、その旨をユーザーに通知するためにjavascriptを使用する必要があります。

これは単なるアイデアですが、役立つことを願っています!

+0

私は 'course_user'データベーステーブルにフィールドを追加して注文を保存しなければならないと思いますか?そして、私はsthが必要です。フロントエンドでは、アプリケーションのユーザーがユーザーにコースを選択して注文することができます。私はこれを見つけた:http://www.designchemical.com/blog/index.php/jquery/change-order-multiple-select-lists-using-jquery/私はこれが私が必要とすることができると思う。しかし、どのように統合するのか分かりません。 – Tim

関連する問題