Laravel по-русски

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

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

#1 Re: Laravel 5.x » Динамические поддомены » 20.09.2016 21:28:32

Все сделал как хотел, решение оказалось проще чем думал и никакие днс настройки не нужны

#3 Re: Laravel 5.x » Динамические поддомены » 19.09.2016 23:41:26

Немного переформулирую то что хочу сделать.

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

Пока получилось сделать только первый пункт))

#4 Re: Laravel 5.x » Динамические поддомены » 19.09.2016 23:31:37

гость15 пишет:

а чего мешает в nginx или в apache прописать, если в этом только проблема

У меня обычный хостинг, нет доступа к этим настройкам.
Хостер сделал только чтобы поддомены обрабатывались на основном домене

#5 Laravel 5.x » Динамические поддомены » 19.09.2016 22:24:28

deller
Ответов: 6

Всем привет. Использую динамические поддомены и хотелось бы спросить, как сделать так, что бы роуты вне поддоменной группы вели на основной домен, без поддомена? То есть что бы при нахождении на 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');
//и т.д.

Суть в том что хочу сделать так чтобы поддомены работали только на главной странице, а в админке пользователя  всегда только на основном домене. А то получается что сайт работает и на основном домене и на поддомене.

#6 Re: Laravel 5.x » Изменение временной зоны » 26.06.2016 14:49:23

Да  я не противлюсь)) оно само туда как Московское записывается)

#7 Re: Laravel 5.x » Изменение временной зоны » 25.06.2016 22:18:48

Да, поставил в 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 что у нас сервер по Московскому времени работает и отсюда уже пляшем, конвертим в другие зоны как надо.

#8 Re: Laravel 5.x » Изменение временной зоны » 24.06.2016 18:09:20

Хотя вот не состыковка какая-то...

время в базе записано как  17:25:10 это время сервера, оно же и Московское
прогоняю через геттер, timezone получает значение временной зоны филиала Europe/Moscow и прибавляет к времени в базе  +3 часа
получается 20:25:10 что не правильно((

#9 Re: Laravel 5.x » Изменение временной зоны » 24.06.2016 17:55:12

Все применил, работает!
С начало думал что 'Y-m-d H:i:s' это выводимый формат, потом дошло что это формат получаемый из базы, отформатировал добавив ->format('')

Еще 1 вопросик.

Можно ли создать мутатор(геттер) глобальным для определенных таблиц?
Конечно можно прописать все в каждой модели, но лично мне не нравится дублировать один и тот же код...

#10 Re: Laravel 5.x » Изменение временной зоны » 24.06.2016 16:43:39

ооо Спасибо Вам большое за разъяснения!! И спасибо Cheshirrski за пример кода, буду пробовать.

#11 Re: Laravel 5.x » Изменение временной зоны » 24.06.2016 09:43:54

Proger_XP пишет:

}%>Поставь 'Etc/UTC', меньше проблем будет.

А в чем разница между просто UTC  и Etc/UTC?

Вроде разобрался...

В базу записывается время сервера(московское)
UTC настройка как я понял всегда отображает +0 от того что в базе записано т.е. записано 9,30(московское +3) покажет 6,30(+0)

Получается разделы отличные от филиалов будут отображать время в UTC  зоне, не лучше ли будет поставить по умолчанию Europe/Moscow в конфиг, чтобы по московскому времени общий контент показывать?

#12 Re: Laravel 5.x » Изменение временной зоны » 23.06.2016 23:35:47

Кjроче в app.php поставил 'timezone' => 'Europe/Moscow', и зону меняю при выводе как выше написал $message->created_at->timezone('тут зона')
Вроде все сходится...

#13 Re: Laravel 5.x » Изменение временной зоны » 23.06.2016 23:19:33

даты в 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('тут зона') но не сработало


Хотя сработало, запутался уже))

#14 Laravel 5.x » Изменение временной зоны » 23.06.2016 22:45:00

deller
Ответов: 21

Всем привет.

Народ нужна небольшая помощь, пытался разобраться сам но не получилось((

Задача следующая:
Для служебных целей пишу мини CRM. В CRM есть таблица со списком филиалов и в каждом филиале есть настройка timezone вида Europe/Moscow
Пытаюсь сделать так чтобы когда другой пользователь работая в каком-то филиале (добавлял посты, записи и другую информацию) добавлял время в поля created_at и updated_at или другие нужные поля с учетом временной зоны

Посоветовали для каждой модели с которой работает филиал добавить мутаторы... Хоть документацию прочитал но не особо понял как эту информацию применить((

#16 Laravel 5.x » Подключится 1 раз к базе и работать с ней » 11.05.2015 18:36:57

deller
Ответов: 0

Привет всем еще раз)

Возник еще один вопрос.

Суть следующая: человек регистрируется на сайте, подтверждает свой 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');

это у меня на каждой странице

#18 Laravel 5.x » Регистрация с подтверждение e-mail » 11.05.2015 13:25:07

deller
Ответов: 3

Всем привет.

Вот только только начал изучать Laravel? вроде вещи классная, но пока немного запутана для меня, хочется разобраться в ней)

В Laravel уже встроена система регистрации, все хорошо работает, только хотел сделать так чтобы пользователь сначала свой email подтверждал, а потом мог пользоваться тем что доступно только зарегистрированному пользователю.

Вот хотелось бы спросить совета у знающих людей, куда копать чтобы добавить подтверждение по email.

Еще после удачной регистрации  происходит редирект на страницу /home мне как бы это не надо, а надо что-то вроде /lk, где этот редирект  происходит нашел в файле \vendor\laravel\framework\src\Illuminate\Routing\Redirector.php функция home, можно как вариант там исправить, но думаю это будет не разумно....

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