我有三个表:用户、条目和user_items。用户有许多项,一个项属于许多用户。
表:
Users
id
username
password
Items
id
name
equipable
User_items
id
user_id
item_id
equipped模型:
class User extends Eloquent {
public function items()
{
return $this->belongsToMany('Item', 'user_items')
->withPivot('equipped');
}
}
class Item extends Eloquent {
public function users()
{
return $this->belongsToMany('User', 'user_items');
}
}在枢轴(user_items)表中,我有一个非常重要的列,名为“named”。
我有一个表单,用户可以装备,明确和投掷项目。此表单有一个带有pivot (user_items)表行id的隐藏字段。因此,当用户试图装备一个项目时,系统会检查该项目是否可安装。
因此,我想要一个具有pivot数据和item数据的对象,基于pivot表中的item_id,我可以发送到处理程序(在那里处理所有的逻辑)。
所以我要做的是先访问pivot表,然后访问item表。
像这样的东西(不起作用):
$item = User::find(1)->items->pivot->find(1);这有可能做到吗?
发布于 2013-06-05 14:09:43
首先,你必须在你的支点呼叫中包括“可配置”:
return $this->belongsToMany('User', 'user_items')
->withPivot('equipable');然后,你可以问雄辩的,如果你的项目是可配置的,或没有:
$item = User::with('items')->get()->find(1)->items->find(2)->pivot->equipable;记住两件事:
https://stackoverflow.com/questions/16550761
复制相似问题