基本的にlaravel 4を使用してmysqlデータベースから2つのテーブルがあるember-dataを使用してember.jsアプリを作成しようとしています。ここで、最初のテーブルの 1 つの列は、別のテーブルのエントリへの外部キーです。チュートリアルを閲覧していたところ、ember データでこの関数を見つけました。
DS.belongsTo
私はこれを次のように使用しました:
App.Leader = DS.Model.extend({
name_en: DS.attr('string'),
name_ne: DS.attr('string'),
photo: DS.attr('string'),
education: DS.attr('string'),
contact: DS.attr('string'),
address: DS.attr('string'),
age: DS.attr('string'),
party: DS.belongsTo('party'),
history: DS.attr('string')
});
App.Party = DS.Model.extend({
name: DS.attr('string'),
logo: DS.attr('string'),
headquarter: DS.attr('string'),
president: DS.attr('string'),
established: DS.attr('string'),
philosophy: DS.attr('string')
});
ここでリーダー モデルでは、パーティー列にはパーティー モデルの ID 番号のみが含まれているため、これら 2 つのモデルを何らかの形で関連付けて、リーダーのパーティーで提供される ID または整数を使用して、パーティー モデルからその特定のレコードをフェッチできます。モデル。
私のルートコードは次のようなものです:
App.LeadersRoute = Ember.Route.extend({
model: function(){
NProgress.start();
var data = this.store.find('leader');
data.then(function(value){
NProgress.done();
});
return data;
}
});
App.LeaderRoute = Ember.Route.extend({
model: function(params){
NProgress.start();
var data = this.store.find('leader', params.leaders_id);
data.then(function(value){
NProgress.done();
});
return data;
}
});
App.PartiesRoute = Ember.Route.extend({
model: function(){
NProgress.start();
var data = this.store.find('party');
data.then(function(value){
NProgress.done();
});
return data;
}
});
App.PartyRoute = Ember.Route.extend({
model: function(params){
NProgress.start();
var data = this.store.find('party', params.parties_id);
data.then(function(value){
NProgress.done();
});
return data;
}
});
私が達成したいのは、新しいリーダー レコードを作成するときに、現在のすべてのパーティー レコードのリストを表示する選択入力が必要であり、そのうちの 1 つを選択することです。ユーザーがリーダーを作成すると、パーティー列の下に対応する ID を配置する必要があります。パーティーモデルの下でその特定のレコード。
また、ユーザーが特定のリーダー レコードを参照する場合、リーダー モデルのパーティー列で提供された ID を使用して、パーティー モデルからパーティー名を取得する必要もあります。
これらは私の現在のコントローラーです:
App.LeadersController = Ember.ArrayController.extend({
isNew: false,
actions: {
newRecord: function(){
this.set('isNew', true);
},
create: function(){
//create code
},
cancel: function(){
this.set('isNew', false);
}
},
});
App.LeaderController = Ember.ObjectController.extend({
isEditing: false,
actions: {
edit: function(){
this.set('isEditing', true);
},
doneEditing: function(params){
this.set('isEditing', false);
},
delete: function(params){
//delete code
}
}
});
App.PartiesController = Ember.ArrayController.extend({
file_name: null,
isNew: false,
actions: {
newRecord: function(){
this.set('isNew', true);
},
create: function(){
//create code
},
cancel: function(){
this.set('isNew', false);
}
},
});
App.PartyController = Ember.ObjectController.extend({
isEditing: false,
actions: {
edit: function(){
this.set('isEditing', true);
},
doneEditing: function(params){
this.set('isEditing', false);
},
delete: function(params){
//delete code
}
}
});
リーダーのテンプレート内のパーティ モデルからレコードを取得するにはどうすればよいですか?