Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Все сделал как хотел, решение оказалось проще чем думал и никакие днс настройки не нужны
Ни у кого нет идей?
Немного переформулирую то что хочу сделать.
1. Поддомены, внешне, должны отображаться только на главной
sub1.site.ru
sub2.site.ru
...
Если например sub2 нет в базе то редиректим на site.ru - это я сделал, но как-то не красиво))
2. На главной странице есть ссылки на регистрацию и вход, они создаются кодом:
url('/auth/login');
и в результате, если мы на поддомене, генерируется ссылка вида: http://sub1.site.ru/auth/login, а хотелось бы чтобы ссылка генерировалась без поддомена sub1.
Можно конечно указывать все ссылки явно http://site.ru/auth/login но мне кажется что есть какое-то стандартное решение.
3.И последнее, когда пользователь в админке то адрес вида sub1.site.ru/dashboard должен открываться как site.ru/dashboard
Пока получилось сделать только первый пункт))
а чего мешает в nginx или в apache прописать, если в этом только проблема
У меня обычный хостинг, нет доступа к этим настройкам.
Хостер сделал только чтобы поддомены обрабатывались на основном домене
Всем привет. Использую динамические поддомены и хотелось бы спросить, как сделать так, что бы роуты вне поддоменной группы вели на основной домен, без поддомена? То есть что бы при нахождении на http://user.site.ru функция url('/') вела на site.ru/, а не на user.site.ru/
Route::group(['domain' => '{subdomain}.site.ru'], function()
{
Route::get('/', function($subdomain)
{
});
});
и дальше куча роутов типа:
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::get('auth/activate','Auth\AuthController@activate');
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
//и т.д.
Суть в том что хочу сделать так чтобы поддомены работали только на главной странице, а в админке пользователя всегда только на основном домене. А то получается что сайт работает и на основном домене и на поддомене.
Да я не противлюсь)) оно само туда как Московское записывается)
Да, поставил в app Europe/Moscow и все стало на свои места, вроде время в разных зонах везде совпадает.
Мне представляется следующий механизм такого результата:
1. В базу записывается время по серверному времени(на сервере оно равно Europe/Moscow)
2. Настройка в app говорит Carbon в какой зоне выводить время
3. Если стоит UTC то Carbon считает что в базе время записано как UTC и ничего не меняет, но оно же там серверное(Московское)
4. И получается когда делаем return \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $this->getOriginal('created_at'))->timezone($timeZone); зона применяется к серверному(Московскому), дважды Московское получается если можно так выразится))
5. Если ставим в app Europe/Moscow (как на сервере) говорим Carbon что у нас сервер по Московскому времени работает и отсюда уже пляшем, конвертим в другие зоны как надо.
Хотя вот не состыковка какая-то...
время в базе записано как 17:25:10 это время сервера, оно же и Московское
прогоняю через геттер, timezone получает значение временной зоны филиала Europe/Moscow и прибавляет к времени в базе +3 часа
получается 20:25:10 что не правильно((
Все применил, работает!
С начало думал что 'Y-m-d H:i:s' это выводимый формат, потом дошло что это формат получаемый из базы, отформатировал добавив ->format('')
Еще 1 вопросик.
Можно ли создать мутатор(геттер) глобальным для определенных таблиц?
Конечно можно прописать все в каждой модели, но лично мне не нравится дублировать один и тот же код...
ооо Спасибо Вам большое за разъяснения!! И спасибо Cheshirrski за пример кода, буду пробовать.
}%>Поставь 'Etc/UTC', меньше проблем будет.
А в чем разница между просто UTC и Etc/UTC?
Вроде разобрался...
В базу записывается время сервера(московское)
UTC настройка как я понял всегда отображает +0 от того что в базе записано т.е. записано 9,30(московское +3) покажет 6,30(+0)
Получается разделы отличные от филиалов будут отображать время в UTC зоне, не лучше ли будет поставить по умолчанию Europe/Moscow в конфиг, чтобы по московскому времени общий контент показывать?
Кjроче в app.php поставил 'timezone' => 'Europe/Moscow', и зону меняю при выводе как выше написал $message->created_at->timezone('тут зона')
Вроде все сходится...
даты в timestamp в базе хранятся(2016-06-23 23:11:11)
Карбон читал, но блин ума не хватает доформатировать вывод под нужную timezone...
пример $message->created_at выводит объект Carbon
object(Carbon\Carbon)#236 (3) {
["date"]=>
string(26) "2016-06-23 19:11:59.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(17) "America/Vancouver"
}
Хотел $message->created_at->timezone('тут зона') но не сработало
Хотя сработало, запутался уже))
Всем привет.
Народ нужна небольшая помощь, пытался разобраться сам но не получилось((
Задача следующая:
Для служебных целей пишу мини CRM. В CRM есть таблица со списком филиалов и в каждом филиале есть настройка timezone вида Europe/Moscow
Пытаюсь сделать так чтобы когда другой пользователь работая в каком-то филиале (добавлял посты, записи и другую информацию) добавлял время в поля created_at и updated_at или другие нужные поля с учетом временной зоны
Посоветовали для каждой модели с которой работает филиал добавить мутаторы... Хоть документацию прочитал но не особо понял как эту информацию применить((
Привет всем еще раз)
Возник еще один вопрос.
Суть следующая: человек регистрируется на сайте, подтверждает свой email и аккаунт активируется, когда он активируется создается новая база данных для этого пользователя и когда пользователь залогинен он работает со своей базой данных.
Вопрос: Можно ли сделать так чтобы подключение к базе было только 1 раз? А то у меня пока только получилось подключатся каждый раз к базе на каждой странице
$capsule = new Capsule();
$capsule->addConnection(array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => Auth::user()->email . '_prefix',
'username' => 'root',
'password' => 'qwerty',
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => '',
), Auth::user()->email . '_prefix');
$capsule->setAsGlobal();
$capsule->bootEloquent();
$this->schema = DB::schema(Auth::user()->email . '_soc_hunt');
это у меня на каждой странице
Все разобрался, все сделал
Всем привет.
Вот только только начал изучать Laravel? вроде вещи классная, но пока немного запутана для меня, хочется разобраться в ней)
В Laravel уже встроена система регистрации, все хорошо работает, только хотел сделать так чтобы пользователь сначала свой email подтверждал, а потом мог пользоваться тем что доступно только зарегистрированному пользователю.
Вот хотелось бы спросить совета у знающих людей, куда копать чтобы добавить подтверждение по email.
Еще после удачной регистрации происходит редирект на страницу /home мне как бы это не надо, а надо что-то вроде /lk, где этот редирект происходит нашел в файле \vendor\laravel\framework\src\Illuminate\Routing\Redirector.php функция home, можно как вариант там исправить, но думаю это будет не разумно....