Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Мне из формы ввода приходит строка.
Я ее превращаю в массив, но перед этим смотрю нужно ли это.
Например, если нет ни запятых, ни тире - то это просто единичный номер страницы - можно не обрабатывать.
Если есть запятые, но нет тире, то это правильное перечисление и парсить его не надо - тоже сразу возвращаю.
Можно было конечно сначала распарсить по запятым, потом элементы парсить по дефису...
Регулярку можно использовать, чтобы убедиться, что входящая строка состоит только из цифр, запятых и тире - написал сначала только проверку на начало и конец строки - нужно просто переделать.
Но вообще-то я ждал пример библиотеки, которую можно было бы использовать. Неужели никто такой не знает?
Да нет же, дело чисто по работе
Просто реально говорю, что функции корявенькие.
Вот первая, например: (Но она проще, как мне показалось... )
Могу скинуть вторую - но она вообще монстр! Поэтому и ищу...
// конвертация списка страниц типа 1,3-7,11,21-27,30 в список, раскрытый через запятую
public function pages_convert($pgs) {
if ($pgs==null) return "";
$pgs = trim($pgs);
$pgs = str_replace(" ","",$pgs);
if(!preg_match("/^\d+/",$pgs)) return "";
if(!preg_match("/(\d+)$/",$pgs)) return "";
if (!mb_strpos($pgs,",") and !mb_strpos($pgs,"-")) return $pgs;
if (mb_strpos($pgs,",") and !mb_strpos($pgs,"-")) return $pgs;
if (!mb_strpos($pgs,",") and mb_strpos($pgs,"-")) {
$pgs_arr = explode('-',$pgs);
$pgs = "";
for($i=$pgs_arr[0];$i<=$pgs_arr[1];$i++) {
$pgs .= $i;
if ($i<$pgs_arr[1]) $pgs.=",";
}
return $pgs;
}
$pgs_arr = explode(',',$pgs);
$pgs = "";
for($i=0;$i<count($pgs_arr);$i++) {
if (!mb_strpos($pgs_arr[$i],"-")) {
$pgs .= $pgs_arr[$i];
} else {
$pgs_arr2 = explode('-',$pgs_arr[$i]);
$pgs2 = "";
for($j=$pgs_arr2[0];$j<=$pgs_arr2[1];$j++) {
$pgs2 .= $j;
if ($j<$pgs_arr2[1]) $pgs2.=",";
}
$pgs .= $pgs2;
}
if ($i<count($pgs_arr)-1) $pgs.=",";
}
return $pgs;
}
Добрый день, коллеги!
Помогите пожалуйста найти готовые решения или библиотеки, которые бы позволяли сделать пару вещей.
Первое: перечисление типа 5,6,7,10,15,16,17,21,29 преобразовать в 5-7,10,15-17,21,29
Второе: перечисление типа 5-7,10,15-17,21,29 преобразовать в 5,6,7,10,15,16,17,21,29
Обе функции я написал, конечно, но думаю, что достаточно коряво Хотелось бы посмотреть на опыт профессионалов, но что-то найти не могу. Наверное вопрос неправильно формулирую.
Посмотрите в сторону pluck
Проблема может быть в разрядности системы - там, кажись, разные версии драйверов. Или еще может быть DSN системный или для конкретного пользователя. Правда, занимался я этим не в контексте laravel...
Если я правильно понял вопрос, то я бы из каталога public вообще бы удалил .gitignore, а в файле .gitignore из каталога app заменил * на /*
select towns.id, count(*) as total from towns left join offers on towns.id = offers.town_id group by towns.id order by total desc
Понял. Спасибо. Вопрос снят.
Спасибо за отклик!
Переписывать я скорее всего ничего не буду - слишком много переписывать, а кроме того придется делать конвертацию данных, что само по себе муторное занятие. А вот посмотреть есть ли смысл писать что-то новое уже на Ларе - другое дело.
Вообще я по простоте душевной думал, что фреймворки могут облегчить жизнь - как-то структурировать проект, разделить его на блоки, уменьшить количество кода и т.п. Но пока что это не очень-то и оправдывается, скорее всего из-за недостатка знаний по теме.
Разделить приложение на бекенд, фронтенд. Можете быть надо сделать обработку данных для форм в виде API, а на клиенте все оставить как было.
Звучит красиво. Можете кинуть ссылку, где это показано на примере? Можно и на английском. Какие вообще действия подразумеваются под этим самым API. Я видел, что в routes лежит файл api.php, но что он делает и как - посмотреть бы на примере.
Моя задача из формы редактирования записи перейти по клику на форму редактирования другой (связанной) записи, а потом вернуться в вызывающую форму и обновить ее часть, без полной перезагрузки. Может она где-нибудь в кеше может сохраняться...
Вот, например, скрин из одной программы (на интерфейс не смотрите, я с ним не заморачивался ). На нем видно, что я, кликнув по строчке связанной таблицы, перехожу в форму ее редактирования, а по кнопку ОК возвращаюсь назад без перезагрузки вызывающей формы, обновляется только редактируемая строчка, например. Но это ajax и jQuery. Может есть аналогичный подход на Ларе?
Хм. Что-то картинку не могу отобразить... Как это сделать - img что-то не срабатывает. Картинка на Yandex.Disk - https://yadi.sk/i/WsSxVHEhvqL4K
Добрый день!
У меня вопрос такого плана - Я пишу и поддерживаю несколько приложений для работы с БД. И уже привык при добавлении новых записей в базу или при редактировании имеющихся записей использовать ajax и формы из jQuery-UI.
Часто у меня встречается такая ситуация (впрочем, довольно стандартная, как я думаю), что к одной записи привязано несколько (пять или шесть) таблиц. Например такая аналогия - у вас есть список людей, он отображается в виде таблицы. Вы кликаете по ФИО и открывается форма редактирования данных по человеку - ФИО, дата рождения, пол, серия и номер паспорта и т.п. Все стандартно.
А под этой формой пять вкладок - в одной перечислены его детишки, члены семьи и родственники, во второй места работы, в третьей, например, прочитанные книги и т.п.
Сейчас я переключаюсь с помощью jquery в нужную вкладку, у меня перечитывается соответствующая таблица, щелкаю, например, по кнопке добавить или редактировать - опять ajax и появляется форма с данными. При нажатии "ОК" в форме запись сохраняется в базе, а у меня перечитывается конкретная связанная таблица в базе и отображается на экране. Практически десктопное приложение, только в браузере.
Сейчас я решил написать что-то такое на ларе. И тут же возник простой вопрос - отобразил я, например, связанную таблицу с книгами в форме редактирования данных по человеку. И хочу теперь по щелчку на конкретной книге перейти в форму ее редактирования, но так, чтобы при сохранении данных или отмене снова вернуться в вызываюшую форму и обновить там данные по конкретной связанной табличке или записи.
Какие тут использовать методы или контроллеры? Как это вообще делать? - киньте, пожалуйста, ссылку или термин из лары куда копать.
Если это нереально или слишком заморочено, то хотя бы подскажите как перечитать в открытой форме данные по связанной таблице. Типа команды "@include('form').update"
Спасибо.
Страницы 1