问题
I'm using Strongloop's loopback tool to create a REST service. I'm wondering how to define what related entities to return when requesting a model.
I see in the docs that you can send a request like GET /api/members?filter[include]=posts
and that will return the related post models, and I discovered that you can make a request like GET /api/members?filter[include]=posts&filter[include]=comments
to get posts and comments, but is there a way to define either in code or the generated json file that you'd like a certain relation to always be returned when requesting a model?
回答1:
The preset filter properties are referred as default scope. We have a pending pull request to support that. Please see https://github.com/strongloop/loopback-datasource-juggler/pull/296.
As a workaround before the feature is released, you can use beforeRemote hooks to update the filter object with your default scope. See http://docs.strongloop.com/display/LB/Defining+remote+hooks.
回答2:
You can use two different easy methods to get relationships to the account.
Using Model definitions in the Model.json file.
"validations": [], "relations": { "team": { "type": "belongsTo", "model": "Team", "foreignKey": "" }, "user": { "type": "belongsTo", "model": "User", "foreignKey": "" } }
This will always bind one model with another models using direct relationships and you can retrieve them using following code lines.
app.models.TeamRole.findOne({
where: {
userId: user.id
},
include:[ {
relation: 'team'
},
{
relation: 'user'
} ]
},function(err,team,user){
//retrieve relational data here
});
- You can use operational hooks concept to obtain such kinds of relations easily.
Cheers.
来源:https://stackoverflow.com/questions/25903985/how-to-include-related-entities-in-rest-with-loopback-io