Anton
Господа, расскажите мне по CRUD. Вот типовой бэк - это CRUD над сущностями, причем как правило примитивными. Тупо приняли данные, обновили модель. И хотелось бы функция типа createCRUD(usersModel, '/users') в итоге бы создались роуты GET /users/1, POST /users, PUT /users Которые бы меняли, создавали и удаляли данные с базы. В ларавеле же к примеру можно создать ResourceController, но он просто сгенерит контроллер с пустыми методами типа index(), update(), delete() и т.д. И мне для каждой сущности надо будет туда пихнуть один и тот же код. Для пута например получить модель с базы, обновить поля, записать. И так будет для всех 10, 20 или 30 сущностей проекта. Это же боль. Так не должно быть
Максим
Добрый день. Прошу совета Клиенту нужен интернет магазин. Имеется оффлайн магазин, в качестве системы учета - 1с. В ближайшее время будет открыто еще несколько точек Необходимо разработать интернет-магазин с возможностью самовывоза из любой оффлайн точки (с отображением доступноного количества товаров), соотвественно необходима интеграция с 1с Вопрос, на чем это сделать? До того как клиент захотел интеграцию началась разработка на Laravel, но сделано было мало. Есть возможность переехать на битрикс Какие будут советы по организации такой системы? Несколько оффлайн точек + онлайн магазин с доставкой и самовывозом из любой точки Спасибо!
Pavel
Битрикс не панацея
Anton
мне для апи
Maksim (Ellrion)
ну хз я такого вырожденного бэка не видел.
Anton
)))
Dmitry
)))
у меня так круд контроллер выглядит http://c2n.me/3PJihEf
Anton
лаконично :)
Anton
а сам CrudController можешь показать?
Dmitry
ну там ничего необычного. процесс создания такой создаешь Model, Класс формы с нужными полями, прописываешь роут. Создаешь контроллер который наследуется от crud контроллера. В самом круд контроллере находишь по имени дочернего класса модель и форму, ну а действия везде одинаковые, и вывод тоже
Максим
Битрикс не панацея
Что еще посоветуете рассмотреть?
Pavel
Если устаканить структуру файла-выгрузки с клиентом, то можно написать парсер и сэкономить
Pavel
сэкономить нервы
Rishat
Ребята привет! На борту имею Laravel 3 и старый isMobile() . Вообщем ситуация такая. При redirecte на полную версию сайта(пк) с параметром в урле http://example.com/?wap=1 нужно поменять значение <meta name="viewport" content="width=device-width"> на <meta name="viewport" content="width=1200px"> Каким боком можно это сделать?
Rishat
Я просто вьюхи подставляю нужные и все.
Dmitry
Сейчас isMobile() сам определяет.
if(!isset($_session['is_mobile'])){ $_session['is_mobile'] = $this->isMobile(); } ..... if(isset($_GET['wap']) && $_GET['wap'] == 1){ $_session['is_mobile'] = true; } .... <meta name="viewport" content="<?=$_session['is_mobile'] ? 'width=device-width':'width=1200px'">
Dmitry
думаю суть ты понял :)
Rishat
Примерно, да. Спасибо))
Rishat
Попробую
Евгений
подскажите как сделать
Евгений
у меня есть Post, и есть его контент который состояит из разных блоков
Евгений
каждый блок - отдельная модель. То есть например есть блок BlockText, BlockGallery, BlockQuote
Евгений
Post может состоять из разного количества и разной последовательности блоков, у каждого блока свои поля
Евгений
это уже всё сделано и всё сохраняется как надо динамически и тд и тп
Евгений
то есть сохраняется в модели по каждому блоку всё
Евгений
вопрос, как лучше теперь для Post сделать сохранение какие блоки ему принадлежат. Сделать в Post колонку типа content сделать его объектом и хранить там последовательность блоков, где каждый блок будет хранить тип модели и айдишник модели которая хранит блок
Евгений
или сделать таблицу типа post_block и там хранить post_id, block_id, block_type ?
Евгений
второй вариант удобнее тем что будут нормальные связи
Antonio
Полиморфные связи с порядковым номером в качестве pivot. Уже же обсуждали
Евгений
я пропустил
Евгений
а порядковый номер прям нужен? если они все сохраняютс просто поочереди то порядок по сути в таблице такой и будет
Евгений
хотя с другой стороны не будет лишним
Antonio
хотя с другой стороны не будет лишним
А потом захочешь двигать если?
Евгений
удалить все блоки из таблицы и сохранить снова с новым порядком
Евгений
типа как sync
Antonio
Синк удаляет связи
Antonio
А не записи
Евгений
записи удаляет
Antonio
И кстати, можешь сделать уник на связку post_id + order
Antonio
записи удаляет
Какие записи? Моделей?
Евгений
из пивотной
Евгений
post_id, block_id, block_type отсюда будет удаляться при синк и писаться снова
Antonio
из пивотной
Ну хз что скажут опытные проектировщики, но я бы делал отдельное поле, а не надеялся на порядок записи. Где-нибудь перед сохранением отработает сортировка и сохранятся в неправильном порядке
Евгений
да, сделаю отдельно, спасибо
Aleksey Y.
Порядок лучше писать в отдельную колонку
Aleksey Y.
Если его предполагается менять
Os
lft rgt depth?
Aleksey Y.
Aleksey Y.
Так даже лучше
Aleksey Y.
Но для простых вариантов и одной хватает
Os
а дальше что в логах? настроен транспорт почтовый?
Os
сек, шлется же несколько иначе с 5.4
Os
А какой у тебя неймспейс вызывается
Os
для мейл
Os
и какой список аргументов
Os
я так делал
Os
https://gist.github.com/OSDDQD/63a540e775bbe2c8145321d95b3be91c
Евгений
блин, а как связь то сделать для Post? Сделал модель Content, сделал табличку post_block, в ней post_id, block_id, block_type и пивотные. Хочу сделать public function content() { return $this->morphMany('App\Models\Content' .....); } чот не пойму что там еще прописать
Евгений
или надо hasMany
Евгений
или morphedByMany
Os
у тебя пост может иметь множество типов представления данных? тогда у тебя post_id в иерархии становится второй величиной или первой, если без категорий, а по user_id, тоже второй
Os
user has many posts type has many posts post has one type
Os
я как то так вижу
Os
а потом помельче, виджеты или блоки
Os
и к ним доступы по акл
Евгений
пост имеен несколько блоков
Евгений
блоки могут быть разными сущностями
Евгений
юзер тут ни при чем в данном случае, но по фактц юзер имеет много постов, пост имеет одного юзера
Евгений
мне не понятно как связь прописать что пост имеет разные блоки
Antonio
В стандартном мануале поставь на место comment свой пост, а все остальные модели используй morphTo(Post::class,....)
Евгений
в мануале там где с комменатми, там не совсем то. Там есть айди сущности (пости или видео) и модель сущности. А у меня есть айди поста, айди блока и тип блока. то есть у меня больше связей
Евгений
то есть тут скорее вариант как m2m morph как в примере с тегами