@laravel_pro

Страница 1063 из 2014
Alexey
26.01.2018
06:36:29
Мне кажется достаточно типовая задача

Alexey
26.01.2018
06:36:53
Делай через события

Alexey
26.01.2018
06:37:07
Сейчас я ее решил тем что заинъектил LayerController в RegistartionController class RegisterController extends Controller { public function __construct(LayerController $layerCtrl, Faker $faker) { $this->layerCtrl = $layerCtrl;

И обращаюсь через $this->layerCtrl->create...

Google
Alexey
26.01.2018
06:37:43
и меня это смущает, но я не могу понять как по-другому

Dmitry
26.01.2018
06:38:32
И обращаюсь через $this->layerCtrl->create...
это полный бред. А если в запросе не будет нужных данных? как у тебя он создастся?

Alexey
26.01.2018
06:39:15
Через события тоже не совсем понятно, потому что я же хочу при запросе на RegistrationController сразу отдать данные и с Layer и с Marker. То есть я предполагаю что мне надо изнутри RegistrationController что то сделать

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

Естественно при стороннем обращении к LayerController есть валидация и тд

Dmitry
26.01.2018
06:40:06
Alexey
26.01.2018
06:40:14
Бинго!

$myRequest = new Request([ 'name' => 'Главная', 'user_id' => $user['id'], 'icon' => 'pin', ]); $this->layerCtrl->create($myRequest);

Dmitry
26.01.2018
06:40:46
$myRequest = new Request([ 'name' => 'Главная', 'user_id' => $user['id'], 'icon' => 'pin', ]); $this->layerCtrl->create($myRequest);
ты когда нибудь пробовал разработку через тестирование?

Alexey
26.01.2018
06:40:57
Нет

Google
Dmitry
26.01.2018
06:44:35
Нет
вот зря, смотри как у тебя должен работать котроллер регистрации (примерно) class Register function registerUser(Request $request, UserRegisterService $service){ $responce['result'] = true; try{ $user = $service->registerUser($request); $responce['user'] = $user; }catch(Exeption $e){ } return $responce; }

все, больше тут ничего не должно быть

Alexey
26.01.2018
06:45:27
Ок, в UserRegisterService как вызвать экшен LayerController?

Dmitry
26.01.2018
06:50:27
Ок, в UserRegisterService как вызвать экшен LayerController?
в сервисе не надо вызывать контролле там просто создаешь пользователя class UserRegisterService $user = User::create(...); if(!$user){ throw Exeption } $loyer = $user->loyer()->create(...); $loyer ->markers()->create(...); return $user ;

Alexey
26.01.2018
06:50:36
Можно решить событиями если мне просто нужно уведомть LayerController. Но если мне нужно получить результат экшена? Ребята предлагают написать отдельный провайдер, в который и LayerController и RegistrationController будут стукаться но это вообще жесть

Alex
26.01.2018
07:13:31
Devilbox
Спасибо

Alexey
26.01.2018
07:32:09
Спасибо
не за что

Evg
26.01.2018
07:34:27
Всем привет. я только начинаю знакомство с Laravel и меня несколько смутила двойственная ситуация с внешними ключами. подскажите пожалуйста мне. В документации говорится, что можно делать, а можно и нет, просто сказав в eloquent что имеются такие-то отношения между моделями. Но зачем это? Чтобы самому за целостностью данных следить?( Высокоуровнево абстрагироваться от бд? О_о Какие best practices приняты в Laravel?

Evg
26.01.2018
07:40:04
я не про получение, а скорее про удаление и мертвые записи. если не ввести внешние ключи и их ограничения - я подозреваю, что мы можем получить ряд "мертвых" записей, при удалении некоторых записей, связанных с другими

наверное если не генерить ключи - надо как-то в логике модели это дело обрабатывать

Samat
26.01.2018
07:41:17
наверное если не генерить ключи - надо как-то в логике модели это дело обрабатывать
да, но лучше получить конкретную ошибку с бд, чем потом вкуривать по полчаса, что произошло

Evg
26.01.2018
07:44:20
http://www.diegocaprioli.com/laravel-migrations-write-those-foreign-keys-from-the-start/#I_see_dead_records8230 вот примерно на чем основывается мое беспокойство. лично мне кажется что лучше сгенерить внешние ключи и прописать все эти действия сразу. такие например как каскадное удаление, или запрещение удаления, если есть связанные сущности. но зачем-то же в архитектуре laravel сделано так что можно по одному и по второму пути пойти. как в сообществе laravel считается хорошим тоном работать?

Evg
26.01.2018
07:51:11
Anton
26.01.2018
07:53:59
Евгений, это сильно зависит от принятых соглашений, никаких бест практик тут нет.

Evg
26.01.2018
07:56:24
Евгений, это сильно зависит от принятых соглашений, никаких бест практик тут нет.
насколько я успел посмотреть по гитхабу проекты разных людей - тоже никакой единственной картины нет. кто-то делает так, кто-то иначе. думаю каждый просто решает, где манипулировать некоторой частью логики, отдать на откуп самой бд или вынести в приложение.

Google
Dmitry
26.01.2018
08:18:46
насколько я успел посмотреть по гитхабу проекты разных людей - тоже никакой единственной картины нет. кто-то делает так, кто-то иначе. думаю каждый просто решает, где манипулировать некоторой частью логики, отдать на откуп самой бд или вынести в приложение.
если у тебя простая логика типа есть основная запись, есть связанно, удалили основную, удалилась связанная, то это можно базе отдать. А вот если что то типа "Нельзя удалять пользователя у которого 3 задания в процессе работы, и начаты не позднее 3х месяцев назад" то это уже приложению надо отдавать.

Evg
26.01.2018
08:23:22
если у тебя простая логика типа есть основная запись, есть связанно, удалили основную, удалилась связанная, то это можно базе отдать. А вот если что то типа "Нельзя удалять пользователя у которого 3 задания в процессе работы, и начаты не позднее 3х месяцев назад" то это уже приложению надо отдавать.
а если у меня при такой сложной логике внешний ключ таки иметься будет, а логику я повешу на какой-то eventListener событий бд(не знаю есть ли он в laravel и как правильно называется, но логично предположить, что такой имеется) и там всё это дело проверю - так тоже будет норм?

вы извините, если я туплю. я laravel только начал смотреть, а опыт разработки у меня из таких страшных областей пхп, которые не очень сочетаются с концепциями нормальных пхп фрэймворков

Evg
26.01.2018
08:25:40
наверное, но я не люблю события :) это скользкая дорожка
а не покажешь какой-нибудь пример как такая логика обрабатывается не на событиях, а в самом eloquent? может ссылочку дашь где пример посмотреть, чтобы я понял разницу

Samat
26.01.2018
08:30:59
а не покажешь какой-нибудь пример как такая логика обрабатывается не на событиях, а в самом eloquent? может ссылочку дашь где пример посмотреть, чтобы я понял разницу
по примеру Дмитрия (про 3 месяца): вешаешь удаление на какой-нибудь метод в контроллере. в контроллере запрос на проверку даты. если прошел, то $model->delete(), нет - response с ошибкой

Dmitry
26.01.2018
08:32:17
а не покажешь какой-нибудь пример как такая логика обрабатывается не на событиях, а в самом eloquent? может ссылочку дашь где пример посмотреть, чтобы я понял разницу
лучше использовать сервис для удаления, а не вызывать метод удалить напрямую у модели. Это ж странно когда объет может сам себя удалить :)

но в контексте AR так и придется делать. Но если это сделать в сервисе, то код станет гибче

Evg
26.01.2018
08:39:18
так-с, ну примерно понял, да. спасибо?

Samat
26.01.2018
08:40:48
почему, кстати, все так не любят события?

Dmitry
26.01.2018
08:41:59
ты делаешь страницу, а у тебя всегда с ней заголовок какой то непонятный. И вот ты сидишь и вкуриваешь что не так. А потом оказывается что он по событию отправки ответа добавляется

Evg
26.01.2018
08:43:00
нууу.... если знать, что они вообще в принципе есть, то они лежат себе в одном месте и понятно работают

ну да, если не знать, то будет сюрприз)

Maxim
26.01.2018
11:03:15
Я к событиям нормально отношусь. Так мы можем сделать код чище Хуже когда в бд есть триггер и что-то делает вместо php

(;¬_¬)
26.01.2018
11:03:37
смотря какие у тебя объемы бд

Maxim
26.01.2018
11:05:15
смотря какие у тебя объемы бд
Не большие. Ляма записей еще не было

(;¬_¬)
26.01.2018
11:06:47
ну тогда тебе не нужны в них триггеры. а бывают ситуации когда триггеры нужны и работают живее чем тот же код на пхп

но опять же там объемы другие

Google
(;¬_¬)
26.01.2018
11:08:15
?я тоже не пользуюсь триггерами. но люди работающие в крупных организациях, где есть отдельные отделы DBA говорят, что триггеры нужны =)

Maxim
26.01.2018
11:08:41
Ok)))

Ахмедов
26.01.2018
12:11:12




Почему тэг мултипл не работает?

Илья
26.01.2018
12:29:58
Требуется программист laravel. Срочно

Admin
ERROR: S client not available

Andrey
26.01.2018
12:30:44
Почему тэг мултипл не работает?
А в разметке он что вывел?

Ахмедов
26.01.2018
12:32:22
Dmitry
26.01.2018
12:32:57
Требуется программист laravel. Срочно
если публикуешь вакансию, пиши условия и требования

(;¬_¬)
26.01.2018
12:33:00
это такой селект мультипл если к нему никакие плагины не подключать

Ахмедов
26.01.2018
12:34:11
это такой селект мультипл если к нему никакие плагины не подключать
значит я стандартный еще не видел) спасибо понел всегда скачивал готовый там все было подключено.

Илья
26.01.2018
12:44:46
Требуется программист для создания Регистрации \ Авторизации laravel. В дальнейшем нужно будет применять шаблонитизатор, настройка лк. Цены, сроки, в лс. Вышлю скриншоты вёрстки. Сейчас работа на PHP

Евгений
26.01.2018
12:57:09
make:auth - регистрация и авторизация

Денис
26.01.2018
13:25:29
?

Leonid
26.01.2018
14:39:09
Есть ли стандартный способ изменения отображения в json и задания даты в виде unix timestamp, но при этом способ хранения в базе оставить прежним? protected $dateFormat = "U" - этот способ так же и ожидает, что данные в базе будут храниться как unix timestamp, потому данный способ не подходит.

$casts подходит для отображения, по при задании даты в виде 1516888505 ларавел смотрит на меня, как на идиота.

Leonid
26.01.2018
14:57:24
Штука полезная, в будущем воспользуюсь. А без ресурсов это решается? Ну кроме как написанием везде setMyDateAttribute().

Google
Leonid
26.01.2018
15:02:40
и получать и записывать

мне нужно иметь возможность хранить в одном формате, а получать и записывать в другом. $casts помогает в получении, а в записи что поможет?

Dmitry
26.01.2018
15:05:27
ну что бы отдавать, лучше все же через декораторы писать. а записывать надо уже обработанные данные. Мутаторы это конечно хорошо, но надо быть точно уверенным что оно везде так будет работать. В твоем случае это не так. Запросто может быть что где то в другом месте дата придет в другом формате, и тут будут большие проблемы.

Valeriy
26.01.2018
15:10:15
Добрый вечер,друзья.Можно в этом чате задавать вопросы по гиту ?

Dave
26.01.2018
15:10:30
@DaRoBa а с гитом могут быть проблемы?

Valeriy
26.01.2018
15:10:37
ну смотря у кого

))

Dave
26.01.2018
15:10:46
ну говори че уж раз начал)

Leonid
26.01.2018
15:11:01
Даты могут придти только в юниксе и я бы хотел, чтобы в какой-то массив мог ввести параметры и они будут автоматически форматироваться в выбранный в параметре $dateFormat формат.

Valeriy
26.01.2018
15:11:08
не могу клонировать репозиторий с сервака,ща ошибку кину.первый раз такое вижу

Leonid
26.01.2018
15:11:32
Этот функционал, конечно, могу и сам написать, но хочу уточнить, нет ли стандартных способов для этого

Да знаю я про карбон

Valeriy
26.01.2018
15:14:40


@aioslike

думаю мб что то с хостингом

Dave
26.01.2018
15:15:17
это клонирование на чистую?

Страница 1063 из 2014