У меня есть три таблицы: пользователи, элементы и user_items. Пользователь имеет много элементов, а элемент принадлежит многим пользователям.Laravel 4 eloquent сводная таблица
Таблицы:
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) Я очень важный столбец с именем "оборудован".
У меня есть форма, где пользователи могут экипировать, снимать и бросать предметы. Эта форма имеет скрытое поле с идентификатором строки таблицы (user_items). Таким образом, когда пользователь пытается оснастить элемент, система проверяет, является ли элемент экипированным.
Итак, я хочу, чтобы объект со сводными данными и данными элемента, на основе item_id из сводной таблицы, я могу отправить обработчику (где обрабатывается вся логика).
Так что мне нужно сначала получить доступ к сводной таблице, а затем получить доступ к таблице элементов.
Что-то вроде этого (не работает):
$item = User::find(1)->items->pivot->find(1);
Возможно ли это сделать?
Спасибо! Это помогло мне - через 2 часа ударило головой из-за стола. –
для получения дополнительной информации см. Http://laravel.com/docs/eloquent#working-with-pivot-tables –
:) Yay! взял меня на некоторое время, чтобы понять, что я забыл «-> поворот». +1 – rofavadeka