@MaxSter Вам не надо её менять. Вам нужно сказать вюьмодели, что ей нужно загрузить новые данные. Создайте функцию, которая будет загружать данные:
self.getProducts = function(category) {
self.products([]); //или removeAll, в доках есть описание как массив чистить
//а здесь ваш getJSON с нужными параметрами.
}
И по клику вызывайте функцию загрузки во вьюмодели. Если вы не знаете как к ней обратиться - то тут все просто. По document ready создайте переменную
var productsVM = new ProductsViewModel();
ko.applyBindings(productsVM);
А по клику делайте:
productsVM.getProducts(нужная_категория);
Сделали в итоге через нотификации, используя Pusher. В нем и передаем данные о том, что сейчас редактируется, и у юзера фактически появляется на руках рабочая версия документа. Этого вполне достаточно для текущей задачи. Изобретать велосипед не стали. В принципе, у сервиса, аналогичного нашему - такая система. Спасибо.
@samoilenkoevgeniy где я прошу придумать решение? Я прошу поделиться мыслями, может кто уже так делал. А решение уже на стадии завершения, и @akubintsev подтвердил догадки о решении конфликта через нотификации. Сделали мы их через pusher.
Это вариант. Мы сейчас пробуем прикрутить pusher, ибо в сервисе он уже используется и менять контент на лету для юзера с соответствующей пометкой. Просто хочется выслушать мнение сообщества.
Хорошо. Я редактирую документ, а потом мне пришло в голову выдернуть шнур из розетки. Статус повиснет, пока я его не разблокирую вручную. Опять же выводить окно, что я согласен, что я буду редактировать его и остальных редакторов слать лесом - одно из вариантов решений. Но какой-то не такой вариант :)
Ну или в вашем случае in_array заменить Schema::hasColumn('users','post_id');
Или уже в цикле проверяйте. Хотя по мне - это капец какой-то. Я бы посмотрел что делает функция hasColumn (не запрос ли к БД).
@aumarov111 да что ж такого:) Создаете пустой массив $data = array(); Бежите по вашему "некорректному", если in_array($arr[$i]['name'], $массив_с_доступными_полями) то $data[$arr[$i]['name']] = $arr[$i]['value'];
На выходе получаете массив $data, в котором ключ - поле, а значение - требуемое значение. Или еще как-то по-другому.
Да зачем все в одну кучу пихать. Получили массив данных вида поле-значение. Удалите из массива ненужные для запроса поля, и бегайте по нему циклом как душе угодно. Хотя что-то мне кажется, что если вы не видите выхода кроме как шлёпать запросы в цикле - это не означает, что этого выхода нет.
+ за gearman. Один раз подняли у себя для одной штуки (как из пушки по воробьям), зато когда проект разростался - тут и ощутили всю прелесть очередей. Теперь если что-то долго думающее от PHP надо - создал воркер, послал ему задание и ни о чем не думай.
Спасибо за ответ. Соответственно если нужен еще 1 внешний адрес сервера, добавляю после первой строчки: iptables -A input -s eth0 -s yyy.yyy.yyy.yyy/32 -p tcp -m tcp --dport 4730 -j ACCEPT
а DROP для остальных остается без изменений?
@Remmi пробовали искать альтернативные варианты библиотек (не PHPExcel) ? Да, и почему просто не брать csv с разделителями ";" ? Любой Excel их читает. даже по-умолчанию в винде открывает csv-файлы через себя.
@Remmi записи там сильно порезаны и не далеко не все. Мне для дебага на локалхосте много не нужно. Возможно, у вас больше информации в одной записи, у нас же проекты разные. Я бы сходу в карьер не пробовал на вашем месте. А, к примеру, рассмотрел 2 варианта хранения. В нашем случае - другие нам не подошли.