Многие-ко-многим без отношений (Laravel)

У меня два приложения, на двух разных серверах. В первом приложении Laravel у меня есть Модель пользователя, а во втором приложении - Модель блога.

Между ними есть отношения "многие ко многим", у пользователя может быть несколько блогов, и один блог может принадлежать множеству пользователей. У них две разные базы данных, но все на одном сервере построено как его единственное приложение.

У них есть REST API и его связь между ними. Проблема в том, что я не могу установить между ними настоящие отношения (например, принадлежитToMany в модели Eloquent), и я не могу перечислить блоги пользователей.

Есть ли способ скопировать функцию отношения "Пользователь :: блоги ()" с некоторой обработкой запросов на Блог :: класс? Например, выбрать в сводной таблице все блоги, где user_id равен 1?

Почему ты не можешь наладить отношения?

ceejayoz 09.03.2018 16:50

Потому что он на другом сервере, в другом приложении laravel. Они не видят друг друга, у меня между ними только API.

Tompos Noel 09.03.2018 16:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
2
53
2

Ответы 2

<?php
class User extends Model{
  protected $connection = 'Your Connection';

  public function blogs(){

    return $this->belongsToMany(Blog::class);
  }

}

Blog.php

class Blog extends Model{

  protected $connection = 'Your other connection';

public function users(){

    return $this->belongsToMany(User::class);
  }

}

Вы можете установить несколько подключений в вашем database.php и назначить каждой модели отдельное подключение.

Я предполагаю, что у вас есть таблица user_blogs. где-то

надеюсь это поможет.

Что ж, я знаю это, но, как я уже сказал, у меня есть два разных приложения на laravel. Но вот решение: Blog :: join ('blog_user', 'blogs.id', '=', 'blog_user.blog_id') -> where ('blog_user.user_i‌ d', '=', $ this-> userId) -> получить ();

Tompos Noel 09.03.2018 19:37

`protected $ connection = 'Другое ваше соединение'; `это для другого подключения

Adnan Mumtaz 09.03.2018 19:39

Нашел вот так:

Blog::join('blog_user', 'blogs.id','=','blog_user.blog_id')->where('blog_user.user_id', '=', $this->userId)->get();

Другие вопросы по теме