Laravel по-русски

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

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

#1 Re: Laravel 5.x » Даты, время, часовые пояса и вот это все » 18.10.2019 10:20:00

Я думаю вам будет приемлем след вариант - при добавлении заказа клиент будут указывать в полях ввода - время (локальное для клиента), дата, город клиента, регион клиента, город хранения, область хранения..

и в БД у вас будет такое..
cities (город.. список всех городов России с которыми вы будете работать)
regions (регион - список всех регионов России с которыми вы будете работать)
cities_in_region (список городов, что входят в регионы.. )
city_time_zone (временная зона города)
region_time_zone (временная зона региона)
orders (записиси о заказах)

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

#2 Re: Laravel 5.x » Subquery в join » 17.10.2019 03:10:21

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

ПРивет, я понимаю, что ничем тебе не помогу в моем сообщении, но могу узнать.. ?
Зачем использовать ларкин Eloquent для сложных запросов.. да и вообще для запросов.. почему бы все запросы не отправлять в RAW формате, ведь на обработку RAW запросов требуется минимальное кол-во времени (Eloquent в таком случае не нужно строить RAW строку для твоих запросов в стелочном синтаксисе.. он же все в конце концов приводит к RAW и отправляет такой запрос в БД..)

Еще одно преимущество в использовании RAW запросов - изучени и практика работы с sql синтаксисом.. ведь он всегда один и тот же.. а вот php оберток написано для него много и все они в итоге преобразют твой синтаксис в raw запрос..

#3 Laravel 5.x » Создать\разрешить регистр\логин для опред тип пользоват и по опр Ur » 17.10.2019 03:00:15

Vakulenko_Yura
Ответов: 0

Здравствуйте, друзья! Может кто-то подсказать как реализовать возможность логина\регистрации определенных типов пользователей только на определенных Url. По Url смогут зарегистрироватся\логинится только те типы пользователей, который принадлежат разрешенной для данного Url группе пользователей.

Я использую  spatie/laravel-permission https://github.com/spatie/laravel-permission для реализации системы ролей и разрешений.
laravel 5.8 (сегодня обновил до 6.3, но не думаю, что реализация для v6.3 будет чем-то отличатся, поэтому решил написать здесь) php 7.3, Kubuntu 18.04 LTS, Apache 2.4, mysql 5.8

В общем, хочу реализовать (процесс логина и регистрации хотелось бы чтобы проходил штатными ларавельскими методами, с минимальными модификациями, что потребуются для воплощения нижеописанного функционала.):
1 - по url site.com/login  site.com/register происходил только Логин(Регистрация) пользователей с типом Customer. Если пользователь который пытается залогиниться\зарегистрироваться не принадлежит к Customer - urlBack redirect с ошибкой "нету прав для регистарции или логина по данному Урл". Если же пользователь пытается зарегистрироваться по site.com/register и данный пользователь уже существует в БД, но принадлежит к одной из групп (admin, manager), регистрация должна быть позволена и пройти успешно, после чего пользователю нужно сохранить в его текущих группах + добавить к группе Customer

2 - по url site.com/admin/login - должен происходить только Логин пользователей с типом Admin. Если пользователь который пытается залогиниться не принадлежит к Admin - urlBack redirect с ошибкой "нету прав для логина по данному Урл". Регистрация пользователей с типом Admin должна происходить site.com/admin/register-admin и только уже авторизированным пользователем из группы Admin

3 - по url site.com/manager/login - должен происходить только Логин пользователей с типом Manager. Если пользователь который пытается залогиниться не принадлежит к Manager - urlBack redirect с ошибкой "нету прав для логина по данному Урл". Регистрация пользователей с типом Manager должна происходить site.com/admin/register-manager и только уже авторизированным пользователем из группы Admin

Как вы поняли из вышеприведенного описания для трех типов пользователей Customer. Manager, Admin, после прохождения логина по соотв урл, они будут соответсвенно перенаправлены в свои админ кабинеты
для Customer - site.com/customer-account (контроллеры в app/Http/Controllers)
для Manager - site.com/manager/dashboard (контроллеры в app/Http/Controllers/Manager)
для Admin - site.com/admin/dashboard (контроллеры в app/Http/Controllers/Admin)

Надеюсь достаточно четко и подробно описал необходимый функционал.

Помогите плиз реализовать данный функционал! Буду очень признателен и благодарен за помощь! Если кто-то уже реализовывал подобный функционал - проведите меня, если возможно по шагам.. уверен, что эта не столь сложная процедура, но, к сожалению, я не знаю как мне ее реализовать на данном этапе. Спасибо.

#4 Re: Laravel 5.x » Странные результаты при тестировании бенчмарком » 16.10.2019 17:15:22

Значит бери пхпшторм, устанавливай xdebug, настраивай его и дебаж.. и увидишь все шаги, что проходит процесс. По другому никак не понять что да как.. нужно дебажить.

#5 Re: Laravel 5.x » Странные результаты при тестировании бенчмарком » 16.10.2019 16:14:12

Привет, Да.. ты упускаешь из виду существенную вещь..
смотри.. бенчмарком 1 - ты непосредственно тестируешь время за которое происходит твоя выборка из БД по заданному фильтру и это правильный вариант.

бенчмарк 2 же тестирует не только время выборки из БД, а еще и время, затраченное на процесс магии ларавел, начиная от автолоадера композера, пока он прогрузится и найдет твой класс  Product, потом загрузит его в память и найдет нам метод filter и заканчивая выполнением самого кода в Product::filter

Надеюсь, ты теперь понял разницу.

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