Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Веб-разработка » Преобразование списков страниц туда и обратно » 16.04.2019 15:11:27

Мне из формы ввода приходит строка.
Я ее превращаю в массив, но перед этим смотрю нужно ли это.
Например, если нет ни запятых, ни тире - то это просто единичный номер страницы - можно не обрабатывать.
Если есть запятые, но нет тире, то это правильное перечисление и парсить его не надо - тоже сразу возвращаю.
Можно было конечно сначала распарсить по запятым, потом элементы парсить по дефису...
Регулярку можно использовать, чтобы убедиться, что входящая строка состоит только из цифр, запятых и тире - написал сначала только проверку на начало и конец строки - нужно просто переделать.
Но вообще-то я ждал пример библиотеки, которую можно было бы использовать. Неужели никто такой не знает?

#2 Re: Веб-разработка » Преобразование списков страниц туда и обратно » 15.04.2019 15:12:13

Да нет же, дело чисто по работе
Просто реально говорю, что функции корявенькие.
Вот первая, например: (Но она проще, как мне показалось... ) smile
Могу скинуть вторую - но она вообще монстр! Поэтому и ищу...

	// конвертация списка страниц типа 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;
	}

#3 Веб-разработка » Преобразование списков страниц туда и обратно » 14.04.2019 08:56:49

ruslan_stef
Ответов: 7

Добрый день, коллеги!
Помогите пожалуйста найти готовые решения или библиотеки, которые бы позволяли сделать пару вещей.
Первое: перечисление типа 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
Обе функции я написал, конечно, но думаю, что достаточно коряво wink Хотелось бы посмотреть на опыт профессионалов, но что-то найти не могу. Наверное вопрос неправильно формулирую.

#5 Re: Laravel 5.x » Laravel подключение к базе MS Access » 26.11.2018 10:48:44

Проблема может быть в разрядности системы - там, кажись, разные версии драйверов. Или еще может быть DSN системный или для конкретного пользователя. Правда, занимался я этим не в контексте laravel...

#6 Re: Веб-разработка » Сделать чтобы картинки из storage/app/public были использованы в git о » 20.11.2018 07:43:42

Если я правильно понял вопрос, то я бы из каталога public вообще бы удалил .gitignore, а в файле .gitignore из каталога app заменил * на /*

#7 Re: Laravel » Уменьшить кол-во запросов к БД » 14.11.2018 13:39:05

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

#9 Re: Laravel 5.x » Редактирование (добавление) записей связанной таблицы » 28.09.2016 12:04:24

Спасибо за отклик!
Переписывать я скорее всего ничего не буду - слишком много переписывать, а кроме того придется делать конвертацию данных, что само по себе муторное занятие. А вот посмотреть есть ли смысл писать что-то новое уже на Ларе - другое дело.
Вообще я по простоте душевной думал, что фреймворки могут облегчить жизнь - как-то структурировать проект, разделить его на блоки, уменьшить количество кода и т.п. Но пока что это не очень-то и оправдывается, скорее всего из-за недостатка знаний по теме.

DBR пишет:

Разделить приложение на бекенд, фронтенд. Можете быть надо сделать обработку данных для форм в виде API, а на клиенте все оставить как было.

Звучит красиво. Можете кинуть ссылку, где это показано на примере? Можно и на английском. Какие вообще действия подразумеваются под этим самым API. Я видел, что в routes лежит файл api.php, но что он делает и как - посмотреть бы на примере.
Моя задача из формы редактирования записи перейти по клику на форму редактирования другой (связанной) записи, а потом вернуться в вызывающую форму и обновить ее часть, без полной перезагрузки. Может она где-нибудь в кеше может сохраняться...
Вот, например, скрин из одной программы (на интерфейс не смотрите, я с ним не заморачивался smile ). На нем видно, что я, кликнув по строчке связанной таблицы, перехожу в форму ее редактирования, а по кнопку ОК возвращаюсь назад без перезагрузки вызывающей формы, обновляется только редактируемая строчка, например. Но это ajax и jQuery. Может есть аналогичный подход на Ларе?
Тест BBcode
Хм. Что-то картинку не могу отобразить... Как это сделать - img что-то не срабатывает. Картинка на Yandex.Disk - https://yadi.sk/i/WsSxVHEhvqL4K

#10 Laravel 5.x » Редактирование (добавление) записей связанной таблицы » 27.09.2016 15:31:40

ruslan_stef
Ответов: 5

Добрый день!
У меня вопрос такого плана - Я пишу и поддерживаю несколько приложений для работы с БД. И уже привык при добавлении новых записей в базу или при редактировании имеющихся записей использовать ajax и формы из jQuery-UI.
Часто у меня встречается такая ситуация (впрочем, довольно стандартная, как я думаю), что к одной записи привязано несколько (пять или шесть) таблиц. Например такая аналогия - у вас есть список людей, он отображается в виде таблицы. Вы кликаете по ФИО и открывается форма редактирования данных по человеку - ФИО, дата рождения, пол, серия и номер паспорта и т.п. Все стандартно.
А под этой формой пять вкладок - в одной перечислены его детишки, члены семьи и родственники, во второй места работы, в третьей, например, прочитанные книги и т.п.
Сейчас я переключаюсь с помощью jquery в нужную вкладку, у меня перечитывается соответствующая таблица, щелкаю, например, по кнопке добавить или редактировать - опять ajax и появляется форма с данными. При нажатии "ОК" в форме запись сохраняется в базе, а у меня перечитывается конкретная связанная таблица в базе и отображается на экране. Практически десктопное приложение, только в браузере.
Сейчас я решил написать что-то такое на ларе. И тут же возник простой вопрос - отобразил я, например, связанную таблицу с книгами в форме редактирования данных по человеку. И хочу теперь по щелчку на конкретной книге перейти в форму ее редактирования, но так, чтобы при сохранении данных или отмене снова вернуться в вызываюшую форму и обновить там данные по конкретной связанной табличке или записи.
Какие тут использовать методы или контроллеры? Как это вообще делать? - киньте, пожалуйста, ссылку или термин из лары куда копать.
Если это нереально или слишком заморочено, то хотя бы подскажите как перечитать в открытой форме данные по связанной таблице. Типа команды "@include('form').update"
Спасибо.

Подвал раздела