реквизиты и прочую контактно-рабочую информацию компании?
Спросил у чата ГПТ, говорит, мил человек, создавайте модель Organization. Но зачем моделью, если организация одна?
На каждое свойство по колонке. Да, она одна, потому почти всегда будет запись Organization::first() для получения только одной.
ну можешь Contacts, key => value
А если подразумевается мультсайтинг с поддоменами,то как раз из этой модели и будут подббираться данные, верно?
Вопрос, а как в хедере/футере вызвать, например, данные? Для них же нет контроллеров. Можно ли в laravel поместить это каким-то образом, чтобы типа $this->phone получать в каждом конроллере
https://laravel.com/docs/10.x/views#view-composers
можешь компонент шапки сделать, в него заинжектить сервис контактов (и везде где надо еще), внутри уже реализовывать кеширование, что бы каждый раз не ходить в бд. это для примера.
А если текст нужно помимо шапки в тексте страницы получить?
зависит от того в каком месте страницы. может это конкретная страница и у нее есть контроллер - тогда в контроллере вызываешь сервис. если это какой-то компонент, то опять же в компоненте. всё через сервис. кто-то это называет репозиторием, но это не он. это просто сервис, который отвечает за выборку контактов, возможно, их форматирование и может иметь кеширование.
Предположим, что у меня есть страница, на которой телефон есть в шапке, в тексте, в футере. Получается, я три раза стучаться буду в БД? Даже, если через компоненты сделать
https://t.me/laravel_web/994934
ты можешь на лету удалять эти символы, оставляя только цифры. а по поводу json - лучше не надо. сделать отдельную таблицу.
В сервисе, не в blade же это делать? (подумал, может функция laravel есть, и можно в blade)
нууу.. я делал в blade, но я этим не горжусь )
а если серьезно, то у тебя сервис может иметь метод getPhone() который вернет номер телефона и может быть getClearPhone getNumberPhone или getFormattedPhone ща пацаны поскажут как лучше методы назвать
там 1 строка регулярка. удаляешь всё что не \d
Вот так норм? Сервис: class ContactService { public function getOrganizationContacts() { return Cache::remember('organization_contacts', now()->addHours(1), function () { return Branch::first(); }); } public function onlyNumbers($phoneNumber) { return preg_replace('/\D/', '', $phoneNumber); } } Blade: {{ $contactService->onlyNumbers($branch->phone_2) }}
а почему ты данные снаружи передаешь. пусть твой сервис как репа содержит данные, и гетеры которые будут возвращать, так то тебе надо гонять и сервис и данные для него
Сори, группа не позволяет
https://ibb.co/4gkvhrH
Херню посоветовал, интерфейсы надо внедрять
Если хочешь повышение к зп, то называй их контрактами
ну я ничего не вижу, но по интуиции прочитал, увидел там репозиторий... ну да, но без репы
хотя не, там не так как я описал выше
Вот так? https://ibb.co/pQHrz8c Соре, я пока по матчасти до этого не добрался
getOrganizationContacts - это может быть у тебя конструктор. создал сервис - вытащил данные. положил их в $this->contacts или по свойствам разложил $this->phone $this->address и потом в методах-гетерах getPhone() обращаешься на свойства return $this->phone. можно даже сразу и подготовить номер, очистив символы, что бы при каждом обращении не повторять регулярку. это, конечно, не единственный вариант, но простой и доступный.
От так? https://onlinephp.io/c/1fb29
$clean = false вот это такое себе будет. лучше отдельный метод getCleanPhone
это че за сервис такой
getPhone() return $this->phone getCleanPhone() return preg_replace()
ему надо контактную информацию по страницам отображать
Для получение контактной инфы
Обсуждают сегодня