Size: a a a

Laravel для начинающих

2021 February 21

ad

awesome dude in Laravel для начинающих
пасиба
источник

🎃

🎃 Даниил ◠‿◠✿... in Laravel для начинающих
PHP PROGRAMMIST⬤👍3🅰️
Как исправить 1/1 ErrorException in AboutController.php line 24: Unde?
нельзя полагаться на то что в $pages будет нулевой элемент
источник

HM

Haybulla Musaev in Laravel для начинающих
народ, вопрос немного архитектурный.

представим, есть некая сущность (заказ), у нее есть три поля - город, адрес, транспорт, а у заказа три статуса - новый, подтвержденный и в работе

1) Первый шаг за пользователем, он создает заказ (статус - новый**), заполняет **город обязательно, адрес по желанию

итак, есть заказ
например, такой

id: 1
city: Saratov
address: null
transport: null

2) Второй шаг за менеджером - он звонит юзеру, подтверждает заказ, если не заполнен адрес, уточняет по телефону и списывает его.

Нельзя перевести систему в статус подтвержденный без адреса

3) Ищется транспорт, как только нашли - переводим заказ в статус в работе

ВОПРОС

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

Так вот - а если делать наоборот? Просто чистить поля в соответствии со статусом. Например, мы переключаемся обратно на подтвержденный, валидатор не ругается, система просто к херам (вообще вне зависимости от фронта, на уровне логики бэка) стирает данные о транспорте.

Или это неправильно?.. Как верней здесь делать?
источник

PP

PHP PROGRAMMIST⬤👍3🅰️... in Laravel для начинающих
🎃 Даниил ◠‿◠✿
нельзя полагаться на то что в $pages будет нулевой элемент
Это просто для учебы. А какие есть варианты?
источник

🎃

🎃 Даниил ◠‿◠✿... in Laravel для начинающих
PHP PROGRAMMIST⬤👍3🅰️
Это просто для учебы. А какие есть варианты?
не полагаться
источник

ad

awesome dude in Laravel для начинающих
🎃 Даниил ◠‿◠✿
не полагаться
а ты харош
источник

PP

PHP PROGRAMMIST⬤👍3🅰️... in Laravel для начинающих
🎃 Даниил ◠‿◠✿
нельзя полагаться на то что в $pages будет нулевой элемент
first()?
источник

🎃

🎃 Даниил ◠‿◠✿... in Laravel для начинающих
у тебя там массив
источник

SC

Sergey Chizhik in Laravel для начинающих
Haybulla Musaev
народ, вопрос немного архитектурный.

представим, есть некая сущность (заказ), у нее есть три поля - город, адрес, транспорт, а у заказа три статуса - новый, подтвержденный и в работе

1) Первый шаг за пользователем, он создает заказ (статус - новый**), заполняет **город обязательно, адрес по желанию

итак, есть заказ
например, такой

id: 1
city: Saratov
address: null
transport: null

2) Второй шаг за менеджером - он звонит юзеру, подтверждает заказ, если не заполнен адрес, уточняет по телефону и списывает его.

Нельзя перевести систему в статус подтвержденный без адреса

3) Ищется транспорт, как только нашли - переводим заказ в статус в работе

ВОПРОС

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

Так вот - а если делать наоборот? Просто чистить поля в соответствии со статусом. Например, мы переключаемся обратно на подтвержденный, валидатор не ругается, система просто к херам (вообще вне зависимости от фронта, на уровне логики бэка) стирает данные о транспорте.

Или это неправильно?.. Как верней здесь делать?
Стирать данные просто так не хорошо. Ты можешь не учитывать поля в своей логике в зависимости от статуса, но тупо чистить их — такое себе.
источник

SC

Sergey Chizhik in Laravel для начинающих
У тебя админ случайно тыркнет и проебёт данные пользователя
источник

HM

Haybulla Musaev in Laravel для начинающих
Sergey Chizhik
У тебя админ случайно тыркнет и проебёт данные пользователя
а вот это неплохой совет...
источник

SC

Sergey Chizhik in Laravel для начинающих
источник

А

Андрей in Laravel для начинающих
Подскажите, пожалуйста. Если я в админке удаляю из БД город, то нужно метод удаления города: писать в CityController, в AdminController или создавать отдельный контроллер для админки, который с городами работает, типо AdminCityController?
источник

e

eldarda in Laravel для начинающих
ну по сути тебе же города не только в админке нужны
источник

e

eldarda in Laravel для начинающих
Метод это не контроллер
источник

А

Андрей in Laravel для начинающих
eldarda
ну по сути тебе же города не только в админке нужны
Я просто не совсем понимаю нужно ли разделять работу с городами в админке и работу с городами не в админке
источник

А

Андрей in Laravel для начинающих
Как бы модель одна и та же, но с контроллерами сомнения берут
источник

AB

Alex B in Laravel для начинающих
Андрей
Подскажите, пожалуйста. Если я в админке удаляю из БД город, то нужно метод удаления города: писать в CityController, в AdminController или создавать отдельный контроллер для админки, который с городами работает, типо AdminCityController?
можешь просто отделить код админки и фронта в под папках
типа
Controllers/Admin
Controllers/Client

соответственно
, тогда префикс уже не нужен

А что по поводу разделения, я считаю что нужно разделять, но при этом один контроллер должен работать с одной сущностью, то есть как крад контроллер

в свою очередь, если код большой, то можно вынести в отдельный инвокейбл контроллер
источник

А

Андрей in Laravel для начинающих
источник

А

Андрей in Laravel для начинающих
Alex B
можешь просто отделить код админки и фронта в под папках
типа
Controllers/Admin
Controllers/Client

соответственно
, тогда префикс уже не нужен

А что по поводу разделения, я считаю что нужно разделять, но при этом один контроллер должен работать с одной сущностью, то есть как крад контроллер

в свою очередь, если код большой, то можно вынести в отдельный инвокейбл контроллер
Спасибо. Так и сделаю. Разделю по папкам
источник