Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Есть связь многие ко многим (Card и User) и промежуточная pivot таблица CardUser (class CardUser extends Pivot {//}).
Теперь, можно вызвать из промежуточной модели определенные данные с внешним ключом, например модель ссылки.
class CardUser extends Pivot
{
//дополнительная связь промежуточной таблицы
public function links()
{
return $this->hasMany('App\Link', 'card_user_id');
}
}
class Card extends Model
{
public function users() {
return $this->belongsToMany('App\User', 'card_user')->using('App\CardUser');
}
}
class User extends Authenticatable
{
public function cards() {
return $this->belongsToMany('App\Card', 'card_user')->using('App\CardUser');
}
}
Но при использовании возникают проблемы, так как не указаны поля в withPivot, которых собственно и нет, а есть только внешний ключ из другой модели/таблицы. Соответственно pivot не связывается с link и не работает как надо, а только через first() Controller:
$links = CardUser::find(1)->links;
dump($links);
$user = User::find(1);
foreach ($user->cards as $card) {
$links = $card->pivot->first()->links;
dump($links);
}
Изменено max1s (28.02.2018 15:04:00)
Не в сети
вручную пропиши че откуда по чем берем
public function roles()
{
return $this->belongsToMany('App\Http\Model\Roles', 'roles_users', 'user_id', 'role_id');
}
Не в сети
Это в моделях которые связываются с пивотной? Попробовал разные варианты - не работает. Без
->using('App\CardUser') вообще ничего не показывает а с ней пустые массивы. (пока делаю в виде json для связи пивотной таблицы с дополнительной структурой, прямо в поле таблицы через withPivot).
Изменено max1s (28.02.2018 14:46:29)
Не в сети
Страницы 1