Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 19.07.2017 11:33:14

Мультисайт на ларавел

Здравствуйте.
Я хочу сделать мультисайт на ларавел.
Я создал таблицу и модель site с таким содержимым
- name
- domain
- domain_ssl
Но вот теперь тут вопрос: как определять на каком домене я сейчас нахожусь? Ставить сессию при входе?
Покажите пожалуйста пример. Спасибо!

Не в сети

#2 19.07.2017 11:43:35

Re: Мультисайт на ларавел

Можно сделать что-то вроде

if (ends_with(request()->root(), 'domain3.ru'))

Это упрощенно, конечно.

Можешь использовать getHost():

$host = str_replace('www.', '', request()->getHost()); // Вернет domain3.ru 

Куда сунуть этот функционал решай сам. Можно посредника создать для всех маршрутов (middleware).

Изменено AlexeyMezenin (19.07.2017 11:48:20)

Не в сети

#3 19.07.2017 18:02:14

Re: Мультисайт на ларавел

Спасибо Алексей!
Я тоже думаю в мидлваре проверять. Но тогда придется из базы брать адрес сайта (с таблицы sites) и на каждом реквесте будит это проверяться примерно так

// Тут берем из базы сайт и сравниваем
// ..
Route::group(['domain' => $host,...

Может можно как то более лучше сделать, что бы от лишнего запроса избавиться?

Не в сети

#4 19.07.2017 18:25:30

Re: Мультисайт на ларавел

От запроса можно избавиться, разместив массив с доменами в отдельном конфиг файле, например создать файл config/domains.php:

<?php

return [
    'domains_list' => [
        'domain1.ru',
        'domain2.ru',
        'domain3.ru'
    ]
];

И брать список с помощью config('domains.domains_list') из любой части приложения.

Изменено AlexeyMezenin (19.07.2017 18:30:21)

Не в сети

#5 10.08.2017 11:55:22

Re: Мультисайт на ларавел

Со всем уже разобрался, и все работает. Последнюю проблему никак немогу решить.
Допустим есть 2 магазина на одном приложении. Надо у одного магазина (к примеру) включить debug, а у другого он должен быть выключен. Как можно разделить эти конфиг файлы, или что то еще сделать что бы у каждого магазина были свои настройки? Или с тем же maitenance mode. Один магазин может быть временно отключен, а второйчто б работал.
Есть у когонибудь идеи?

Изменено Testuser123 (10.08.2017 11:56:41)

Не в сети

#6 10.08.2017 12:08:24

Re: Мультисайт на ларавел

Допустим есть 2 магазина на одном приложении. Надо у одного магазина (к примеру) включить debug, а у другого он должен быть выключен. Как можно разделить эти конфиг файлы, или что то еще сделать что бы у каждого магазина были свои настройки? Или с тем же maitenance mode. Один магазин может быть временно отключен, а второйчто б работал.

То, что ты хочешь сделать, имеет термин - SaaS.
У меня был опыт переориентации продукта из standalone приложения в SaaS, перевел успешно, все проблемы разрешил.
Наработки кода остались, могу подсказать и рассказать вечером, пиши в личку.

Не в сети

#7 13.08.2017 14:46:31

Re: Мультисайт на ларавел

Отписал много букв тебе на почту своей success story по переделке проекта из standalone в SaaS.

Не в сети

#8 16.08.2017 09:33:49

Re: Мультисайт на ларавел

  1. Отписал много букв тебе на почту своей success story по переделке проекта из standalone в SaaS.

Спасибо! То что нужно. даже структура бд совпадает)

Не в сети

#9 23.10.2018 15:07:07

Re: Мультисайт на ларавел

Всем здравствуйте! Очень рад что удалось нагуглить эту тему.
А все потому, что передо мной стоит задача аналогичная этой:

переориентации продукта из standalone приложения в SaaS

Но полной картины не вижу. Буду очень рад любой помощи.

Не в сети

#10 12.12.2018 13:18:46

Re: Мультисайт на ларавел

Всем спасибо. Остался последний вопрос:

Надо у одного магазина (к примеру) включить debug, а у другого он должен быть выключен.

Как?

Не в сети

Подвал раздела