1. Как помнится из коробки что-то было для работы с формами, но потом выкинули?Так и есть, выкинули за ненадобностью подобных хвостов в основном фреймворке. В том смысле, что этот хвост ещё и поддерживать нужно...
Выходит по дефолту работаем с формами на чистом HTML (+blade)? Может какие-то пакеты юзаете?Можно так, можете пользоваться теми формами которые выпилили, можете воспользоваться вариантом аки symfony, ещё можно тут поискать другие варианты.
2. Как правильно работать при CRUD c C и U, т.е. нужно два раза форму показать и это разные вьюхи? или форму в одну вьюху закидываете и там рулите?Всё индивидуально. В общей сложности, при простых вариантах - создавать разные файлы форм не обязательно, при "C" можете создавать ту же форму что и при "U", передавая туда пустую модель.
Чем это хуже подхода - когда вся логика распологается в сервисах, и в целом чем плох такой подход?Он ничем не хуже и не лучше. Пакеты - это одно, сервисы - другое, а Вы их зачем-то "складываете в одну корзину". Что по сути своей представляет пакет? - пакет - это некий модуль, решающий какую-то конкретную задачу, поддерживаемый и обслуживаемый конкретным веднором. В массе своей пакеты никак не привязаны к тому, где и как они будут использоваться. То есть, пакет - это некий набор общей логики, процессов и т.д. для решения какой-то задачи (или набора схожих/связанных задач), например для обработки изображений.
Нормально ли для каждой роли делать отдельную папку в Controllers и почти дублировать все контроллеры, чуть их модифицируя?Нет. Если даже отбросить все прочие "но", представьте, чего Вам будет стоить ввести новую роль в систему?! Это же будет полный ахтунг!
Также получается и роуты дублируются... и виды.Тем более.
Есть просто мысль, что я много кода дублирую, нормально ли это?Нет, не нормально. Честно говоря, я не понимаю, как Вы смогли изучить Laravel, при этом обойдя вниманием один из основополагающих принципов разработки DRY.
Для ролей и разрешений использую "laravel spatie permission".Честно говоря, не знаю что это, но если текущий модуль обслуживания прав/привилегий/ролей/управления доступом (и т.п.) - Вас чем-то не устраивает или заставляет(?) Вас нарушать основополагающие принципы разработки - нужно просто найти другой, более подходящий под Ваши конкретные задачи.
а значит надо еще и прикручивать bladeНе значит.
К тому же кто-то писал, что dingo/api плохая вещь.Вас никто не заставляет его использовать, если он плохая вещь.
но я хочу грамотно и определить для себя хорошую архитектуру.Хорошая архитектура начинается с постановки конкретных задач и требований, а в данный момент у Вас нет вообще никаких конкретных требований - можете делать на чём угодно, для данных условий подходит любой вариант.
аргументированные ответы и ваш опыт.Мой опыт подсказывает мне, что Lumen был изначально придуман для максимальной скорости работы, что обычно важно при написании таких сервисов как различные REST/API-серверы, особенно при больших нагрузках на оные.
а следовательно зря тащиться каждый раз в проекте и мусоритьОбычно то, что Вы называете "мусором" лежит в тех папках, в которые программисту лазить по определению не положено. Но, если ставить вопрос именно так то "мусор" будет в любом случае, не зависимо от выбора фреймворка.
php artisan run:command
Что можно почитать по этому поводу, в каком направлении хотя бы гуглить?Основных вариантов, на вскидку, могу предложить следующие:
Можно ли эти данные закешировать как-то стандартными средствами Laravel и чтобы они обновлялись раз в 5 минут?А что Вам мешает закэшировать их например, в Redis со сроком жизни кэша 5 минут и проверять, есть ли данные в кэше (и если их там нет - класть их туда, на следующие 5 минут)?
DB::select
, создать запрос, в котором Вы объедините таблицы с помощью запроса как Вам нужно А как к этому можно было бы Laravel прикрутить или наоборот к Laravel?Точно так же как и к обычному PHP. Зачем менять HEADER - мне пока не ясно, можете грузить любой текст с сервера, подключая его как CSS (должно по идее работать без всяких дополнительных телодвижений).
И вообще такое практикуется?Обычно - нет.
Ведь есть же куча админок, где есть возможность менять цвет фона, цвет кнопок. Как такое реализуется?Чаще всего, либо с помощью JavaScript'a, либо с помощью подмены CSS-файла (на главной странице) переопределяющего некоторые стили (либо совокупностью этих методов).
Есть ли в laravel способ сохранить картинку на определенное время?В самом Laravel'е - вряд ли (скорее всего - нет). По причине того, что это не очень типовая задача и к конкретному фреймворку (например, Laravel) она прямого отношения не имеет.
Или же остается способ загружать картинку как обычно и по крону отчищать директорию?Я бы пользовался at, оно как мне видится чуть больше подходит для данной задачи.
Как реализовать запрет на одновременное редактирование записи в БД MySQL c помощью LARAVEL?Добавить флаг (колонку в БД), подобный функционал был придуман и применяется ещё с лохматых годов, соотв. при попытке начать редактирование записи - этот флаг должен проверяться.
А в браузерах android не отслеживается закрытие вкладки!!!Я Вам по секрету скажу, закрытие вкладки даже в браузерах "не адроид" не всегда можно отследить и всецело полагаться на что-то подобное я бы не стал. Один из вариантов "надёжного" отслеживания наличия "клиента на линии" - выглядит примерно так:
P.S. Разумеется, GitHub проверялЯ бы на Вашем месте проверял бы всё-таки вот этот сайт, куда удобнее, чем по GitHub'у шариться...
но принимать решение в выборе "по количеству звездочек" - на мой взгляд слишком обывательский подход.В этом я Вас полностью поддерживаю, я бы в дополнение к звёздочка основывался бы так же на: кол-ве загрузок, совместимостью с вашей версией фреймворка, активностью разработки проекта, датой последнего обновления оного и другими параметрами.
после того как делаю submit просто белый экран появляется. В консоле пишет что был отравлен методом post.В браузере формы отправляются либо методом "GET", либо "POST". Остальное поведение "эмулируется" на уровне фреймворка. Подробнее про то, как указать метод, которым отправляется форма можно почитать в документации к Laravel.
Почему в Laravel много компонентов из Symfony? Laravel это форк Symfony?Я бы переформулировал немного. В Laravel много компонентов, авторами которых являются авторы Symfony. Видимо, так сложилось, что эти компоненты обладают достаточно высоким качеством или иными положительными качествами, которые разработчики Laravel сочли нужными/важными.
Laravel это форк Symfony?Нет.
composer require cviebrock/eloquent-sluggable:^4.3
- для версии 4.3.х - картина ровно аналогичная. Затем коллекцию прогоняю через foreach(кстати, как это правильно называется?Это называется "обход в цикле" (один из вариантов названия "этого").
в цикле ставлю условие, если поле role_id не равняется "1"У Вас это условие когда-нибудь выполняется, хотя бы раз? P.S. При сравнении с цифрой, т.е. вот в таком варианте -
if($s->role_id != '1')
- "1" не обязательно оборачивать в кавычки, и наверное, лучше будет даже не оборачивать 1 в кавычки, если "1" - это именно (всегда) цифра.Если отправить в дочерний шаблон переменную adverts из контроллера то ошибки не будет. Но я не думаю что это будет хорошим решением. Как правильно здесь поступить?Если я правильно Вас понял и мне не изменяет память - это довольно старая ошибка Laravel/Blade, которая заключается в том, что переменные "разворачиваются" раньше, чем переопределяются секции в шаблоне. Подозреваю, что её до сих пор не исправили.