请问用 Laravel 如何实现类似 Parse 的 includekey 功能?
Parse提供了一个数据查询条件 includekey,这个功能简单的来讲就是如果一条数据有关联数据,那么如果不添加这个查询条件,那么关联的数据不会一起查询了然后传过来。举个简单的例子,在Parse里面:
如果数据post(帖子),有user(发帖人)字段关联的是user(用户)数据。如果获得了一条帖子的数据,想要知道发帖人的姓名,要是在查询的时候不添加includekey条件,帖子关联的用户信息是不随着数据一起发送的,必须读取一次发帖人数据才能获得
这样的查询结构对App提供json数据很灵活,请问如果想自己用laravel实现这样的数据传输结构,应该用什么样的逻辑?还是Eloquent本身就提供了这样灵活的关联数据体系?
------------------------------------------------
我之前的实现都是在model里面通过attribute属性添加一个自定义的查询来为json提供关联数据。因为laravle的BelongsTo对json没用。比如我在post里面又个user_id字段保存的用户id号,那么我想获得用户数据,那么post的model我是这样写的:
class post extends Eloquent{
protected $appends=['user];
public function getuserAttribute(){
return User::where('id','=',$this->user_id)->first();
}
}
请问我这样写合理吗?有大神能给出更好的方法学习下嘛?谢谢!
with +1
还有pivot...