adikalon
Ибо в уроках про это не увидел
Peter
В уроках всё максмально упрощено и показано как можно делать, а не как нужно и не обязательно это самый правильный вариант
Peter
Как правильно делать приходит уже с опытом
adikalon
Ну так и где узнать как правильно? Полистал документацию, там тоже на примерах контроллера
Andrey
Ну сделай например репозиторий для моделей и там валидируй
Peter
"Правильно" индивидуально, всё зависит от проекта и не нужно заниматься оверинженерингом, делай как умеешь и с опытом всё придёт
Andrey
Правильно - ты в каком смысле?
adikalon
Правильно т.е. в соответствии с тем, что рассказывают в уроках в начале о MVC. Т.е. реализовывать подобное в моделях, для чего они, как я понял и предназначены. Я не могу чет въехать в это. Есть вариант создать отдельный класс для валидации, но тогда я не понимаю зачем нужна модель, кроме как ссылки на таблицу в БД
Peter
Исходи из того, что каждый класс выполняет только одну функцию
Andrey
Модель тебе предоставляет доступ к данным
Peter
Модель это объект или данные с которыми ты оперируешь, они не обязательно хранятся в БД
Andrey
Блин, начал писать, а все написали) Удобно
adikalon
Ну так манипуляции с данными тоже должны происходить в моделях или нет?
Peter
Нет
adikalon
а контроллер - просто передача данных в модель
Peter
Посмотри что такое SOLID
John
Правильно т.е. в соответствии с тем, что рассказывают в уроках в начале о MVC. Т.е. реализовывать подобное в моделях, для чего они, как я понял и предназначены. Я не могу чет въехать в это. Есть вариант создать отдельный класс для валидации, но тогда я не понимаю зачем нужна модель, кроме как ссылки на таблицу в БД
Изначально в классическом варианте MVC вся логика, как и работа с БД должна быть в модели, контроллер выступает только связующим звеном. В ВЕБе контроллер стал содержать в себе всю логику, в модели методы для работы с БД (как, например, в codeigniter), в таких фреймворках, как yii/laravel и методы для работы с БД перенесли в контроллер, классы модели бывают вообще пустыми. Но не всегда. Поэтому в ларе в основном, вся логика у тебя в контроллере, валидация и т.п., также у тебя запросы к БД, например, с помощью query builder у тебя тоже в контроллере, но внутри фреймворка, в его ядре, все эти запросы проходят через модели, даже если они пустые. В двух словах как-то так
invariance
кек
invariance
Изначально в классическом варианте MVC вся логика, как и работа с БД должна быть в модели, контроллер выступает только связующим звеном. В ВЕБе контроллер стал содержать в себе всю логику, в модели методы для работы с БД (как, например, в codeigniter), в таких фреймворках, как yii/laravel и методы для работы с БД перенесли в контроллер, классы модели бывают вообще пустыми. Но не всегда. Поэтому в ларе в основном, вся логика у тебя в контроллере, валидация и т.п., также у тебя запросы к БД, например, с помощью query builder у тебя тоже в контроллере, но внутри фреймворка, в его ядре, все эти запросы проходят через модели, даже если они пустые. В двух словах как-то так
каком еще вебе?
adikalon
Изначально в классическом варианте MVC вся логика, как и работа с БД должна быть в модели, контроллер выступает только связующим звеном. В ВЕБе контроллер стал содержать в себе всю логику, в модели методы для работы с БД (как, например, в codeigniter), в таких фреймворках, как yii/laravel и методы для работы с БД перенесли в контроллер, классы модели бывают вообще пустыми. Но не всегда. Поэтому в ларе в основном, вся логика у тебя в контроллере, валидация и т.п., также у тебя запросы к БД, например, с помощью query builder у тебя тоже в контроллере, но внутри фреймворка, в его ядре, все эти запросы проходят через модели, даже если они пустые. В двух словах как-то так
Добра тебе
invariance
веб не ограничивается mvc
invariance
почему вы путаете людей, это моя должность
John
В mvc вебе, mvc то придумали ещё в 70-х
invariance
отнимать работу нехорошо
Andrey
invariance
(з.ы. а в ларке не MVC, а MVCS)
Andrey
а что S значит? я правд не знаю
Andrey
пойду погуглю
invariance
service
invariance
ну, по крайней мере это хорошая практика, юзать ларавел как MVCS
invariance
даже коробочный функционал с таким подходом написан
Andrey
Угу, загуглил.
Anonymous
Anonymous
мне зашло
Anonymous
удобная либа
invariance
маладэц
Andrey
Что это за exit у тебя там? О_о
Andrey
Да и else тут лишнее, если местами блоки поменять и в условие ! добавить
adikalon
Еще вопрос по аутентификации/авторизации. В ларавеле имеется встроенный механизм, лучше юзать его или самому писать? Он вообще гибкий там? Просто мне легче самому написать, чем разобраться как он устроен, не хотелось бы сейчас тратить время на разбор если он не подойдет. Может вопрос туповат, в кратце: вы используете встроенный механизм или пишите свой?
invariance
invariance
заодно посмотришь на красивый код)
Anonymous
exit - заглушка
Andrey
Написать проще, чем использовать втроенный - означает, что ты даж 5 мин не потратил на его изучение)
Andrey
А этого времени (ну примерно) хватает на то, чтобы понять, как там все просто)
John
Andrey
exit - заглушка
Завершать выполнение exit (die) не стоит. Есть свои обычные стредства. Бросай исключение, возвращай response() нужный
invariance
солидарен
adikalon
ну если встроенный такой хороший, ок тогда возьмусь за чтение статьи
invariance
invariance
что бы не говнокодить
Andrey
invariance
ты ща возьмешься и напишешь трешак какой-нибудь, как и делает большинство новичков
Andrey
invariance
тот который без exit() :D
Andrey
Andrey
Да и наверняка! написание своего велика займет времени больше, чем изучение доки
invariance
@negasus ты согласен со мной насчет MVCS то?
invariance
adikalon
ferryvg
можно структуру как-нибудь увидеть?
структура тривиальна:
1) таблица категорий (id, название)
2) таблица тегов (id, название)
3) таблица постов (id, заголовок, контент)
4) pivot таблица для связи постов с тегами (post_id, tag_id)
надо в модели категории получить список всех тегов
invariance
invariance
ferryvg
да, hasManyThrough не подходит
invariance
т.е. посты относятся к категориям, а теги к постам?
ferryvg
у поста есть category_id
invariance
я правильно понял, что в каждом из постов, находящихся в одном разделе - всегда есть одинаковый набор тегов
ferryvg
нет, разный
invariance
эээ
invariance
тогда причем тут разделы вообще
ferryvg
разделы не причем
ferryvg
ferryvg
есть категрия, в которой несколько постов.
ferryvg
у каждого поста несколько тегов через pivot-таблицу
ferryvg
если брать пример из доков: https://laravel.com/docs/5.4/eloquent-relationships#has-many-through
в моем случае пользователь привязан к нескольким странам через таблицу
ferryvg
а не через поле country_id