【发布时间】:2016-04-25 22:57:03
【问题描述】:
- 我有
users表 - 我有
pets表 - 他们之间的关系是
belongsToMany。 - 这些表具有名为
user_pets的数据透视表,其中包含有关用户特定宠物的信息。 -
我使用
$user->pets()获取用户宠物,包括数据透视表信息。我的用户模型中的pets()方法是:public function pets() { $pets = $this->belongsToMany(Pet::Class, 'user_pets')->withPivot( 'id', 'position', 'level', 'exp' )->orderBy('position','asc'); return $pets; } -
如您所见,每个宠物都是
level和exp字段。我的pet_exp表中列出了获得下一个级别所需的经验:ID | level | requiredExp1 5 237 2 6 406 3 7 637 4 8 942 5 9 1326 6 10 1800 7 11 2369 -
问题:我想用
$user->pets()(上面的方法)返回宠物当前等级的requiredExp。我已经想了几个小时,想不出办法。
希望你能帮助我,谢谢!
【问题讨论】:
-
如果宠物等级为
5,您是要求返回,例如237,还是因为比宠物等级高一级,您要返回406?跨度> -
我要求返回 237。
-
向
Pet模型添加属性是否可以接受?或者您是否必须在返回的pets()数组中包含它?如果我这样做,我可能会在Pets模型中添加一个requiredexp()函数,该函数将返回$this->level所需的exp。 -
是的,可以接受,只要我不需要添加新的数据库字段。
标签: laravel