These are chat archives for LaravelRUS/chat

12th
Dec 2014
Anonim-khb
@Anonim-khb
Dec 12 2014 01:58
Всем привет. Посоветуйте, пожалуйста, что-нибудь для поиска в БД для 4-ки. Нашел это, но сомневаюсь.
Alexander Zhuravlev
@SCIF
Dec 12 2014 02:05
@Anonim-khb , нормально вопрос сформулируй. LIKE '%%', полнотекстовый поиск и ещё уйма варианто
ast-rb
@ast-rb
Dec 12 2014 03:30
Elastic :)
Maxim
@Big-Shark
Dec 12 2014 04:36
Парни, а как вы решаете вопрос с информированием об ошибках в приложении (особенно с апи)?
Ray Mayemir
@raymayemir
Dec 12 2014 05:28
всем привет
Роман Сохарев
@greabock
Dec 12 2014 05:58
добро
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 07:32
привет
Ray Mayemir
@raymayemir
Dec 12 2014 07:34
Слушайте вот как реализовать: например у меня есть модель Cash в ней я привязываю к пользователю какую-то сумму, так же есть модель для запсиси товаров в бд, и есть функция обновления статуса товара, статусов всего 5. Теперь вопрос как привязать действие к одному определенному статусу чтобы когда он был активен снимать из суммы цену за товар ? cash - (количество * (цена+доставка))?
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 07:34
@Big-Shark создан список ошибок и подробно описан в доке. С каждым ответом от API идет поле типа status. Если в нем, например не 0, значит клиент читает поле error ну или что-то другое. Так в ответ может примешиваться не только код ошибки, но и ее description
Alexander Zhuravlev
@SCIF
Dec 12 2014 07:35
@BelirafoN , я подозреваю, что он имел ввиду ошибок работы бакенда апи, а не ошибок в ответах апи
@RaiMaemirov , не совсем понял задачу, но попахивает тем, что вам нужно пользовать observer'ов — http://laravel.com/docs/4.2/eloquent#model-observers
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 07:38
возможно :) Если backend, то созданы свои эксепшены и в ларе примешивание в ответ ошибок по перехваченным исключениям. Если ошибка критическая и вообще ничего не прошло, то просто пустой ответ с кодом ошибки. Короче банально, но работает
Alexander Zhuravlev
@SCIF
Dec 12 2014 07:40
@BelirafoN , вы не понимаете. Речь про то, что на бакенд-сервере кончилось место и он отдаёт всякую ересь клиентам. Нужно это увидеть первей, чем клиенты разорвуть телефон/сломают двери в офисе и доберутся до программера.
Ray Mayemir
@raymayemir
Dec 12 2014 07:40
@SCIF ну что-то типа если поставили товару статус Выкуплен то со счета снимается цена за товар
Alexander Zhuravlev
@SCIF
Dec 12 2014 07:40
Речь про мониторинг жизни апи серверов, я думаю
@RaiMaemirov , я в своё время подобное реализовывал на триггерах бд // тут истерический смешок :trollface:
@RaiMaemirov , следующей итерацией схожих манипуляций были уже обсерверы во фьюле. Отлаживать приходилось долго, ломали копья/головы/клавиатуры, но глаза, как в случае триггеров, уже не ломали
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 07:45
Да, что-то торможу с утра, кофе нужен. У нас сейчас служба анализа лога сервиса API (на nodejs, исторически сложилось), анализ налету. Если есть аномалия - уведомление на почту или мессанджер. Как вариант развернуть что-то типа pinba
Alexander Zhuravlev
@SCIF
Dec 12 2014 07:48
Ну пинба по смыслу совсем в другое место требуется. Тут скорей писать айтем для zabbix или любой другой службы мониторинга, которая применяется в компании.
Заодно и мониторинг места и прочих штук
Maxim
@Big-Shark
Dec 12 2014 07:49
Писать не хочется) писать все можно самому) хочится магическую штуку которая будет работать)
Ray Mayemir
@raymayemir
Dec 12 2014 07:52
@Big-Shark а что вы можете посоветовать по счет моего вопроса ?
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 07:54
@RaiMaemirov при выставлении нужного статуса зажигайте свой event на моделе. Повесьте обработчик на этот кастомный event, в котором все и обсчитайте.
Ray Mayemir
@raymayemir
Dec 12 2014 08:03
@BelirafoN блин с этим у меня туго
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 08:08

Слушаем кастомное события

Event::listen('status.sold', function($your_data){
    //...
});

Зажигать событие так

Event::fire('status.sold', $your_data);

Обработчик можно (как вариант) положить в events.php и положить рядом с routes.php. Не забудьте подключить в систему, например в global.php.
Событие зажигайте там, где статус у вас меняется.

Это просто как пример возможного решения

ststaus.sold - это просто мною придуманное имя события
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 08:44
ну или зарегистрируйте обработчик в boot-методе модели. Так будет нагляднее
Ray Mayemir
@raymayemir
Dec 12 2014 08:49
для теста пока делаю в route
Ray Mayemir
@raymayemir
Dec 12 2014 08:56
@BelirafoN а вот как лучше будет ? я вот так обнавляю статус
public function update($id)
    {            
            $order = Import::find($id);
            $order->status       = Input::get('status');            
            $order->save();
            // redirect
            Session::flash('message', 'Successfully updated!');
            return Redirect::to('orders');        
    }
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:00
@RaiMaemirov не до конца понял, что лучше?
Если это боевой пример, то не стоит так просто данные из инпута присваивать, проверить бы их перед этим
Ray Mayemir
@raymayemir
Dec 12 2014 09:01
@BelirafoN валидация есть
@BelirafoN я просто не могу понять как выбрать статус и зажечь Event::fire('status.sold', $your_data);
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:03
Если я правильно понял, в этом примере можно проверить в каком статусе заказ стоит и в какой нужно поставить. И если это и есть первый переход заказа в конечный статус, то в этом примере зажечь event, чтоб сюда кода по просчету не нахлобучивать.
Зажечь так
Event::fire('status.sold', $order);

Лучше вынесите эту проверку перехода в конечный статус в setter статуса, и из него дергайте событие вот так

Event::fire('status.sold', $this);

$this в этом варианте как раз будет вашим заказом

Ray Mayemir
@raymayemir
Dec 12 2014 09:06
@BelirafoN а если вот так
if($order->status = [’some’]){ Event::fire(’status.sold’, $this); } ?
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:08
Как-то так в моделе заказа
public function setStatusAttribute($value){
        $this->attributes['status'] = $value;
        if($value == 'some') Event::fire('status.sold', $this);
    }
Как вариант
можно и как вы предложили - это просто дело реализации и удобства организации кода
Ray Mayemir
@raymayemir
Dec 12 2014 09:10
@BelirafoN в принципе нет же разницы если я в контроллере сделаю ?
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:10
нет, все будет работать
Ray Mayemir
@raymayemir
Dec 12 2014 09:18
@BelirafoN а вот как мне принять $this ? в
Event::listen(’status.sold', function($order) { $order->bought = new DateTime; $order->save(); }); но почему то у меня и $order не пашет
Event::listen('status.sold', function($order) { 
    $order->bought = new DateTime; 
    $order->save(); 
});
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:21
@RaiMaemirov а из контроллера верно дергаете событие? В контроллере события нужно давать не $this (понимаем, что это сам контроллер), а сам заказ.
Event::fire('status.sold', $order);
LaravelButler

Приветствуем Вас, @gardemm, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснений отношений между участниками. За нарушение – Бан!

Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, ознакомьтесь с Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Ray Mayemir
@raymayemir
Dec 12 2014 09:39
@BelirafoN чет всеравно не хочет работать
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:42
@RaiMaemirov Попробуйте подампить или посмотреть xdebug'ом, проверьте дергается ли вообще событие? Что-то делаете не так.
Ray Mayemir
@raymayemir
Dec 12 2014 09:43
не дергается вообще
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:45
вот. посмотрите где именно регистрируете обработчик. Желательно где-то в начале. Или global.php или в boot модели заказа
Ray Mayemir
@raymayemir
Dec 12 2014 09:46
ок
Terion
@terion-name
Dec 12 2014 09:50

@slider23 :
Мне лично не надо ничего невероятного, сделали бы инсталлер для пакетов нормальный, типа от rtblada или terion

ухты, им даже пользуются. надо бы дописать ))

Ray Mayemir
@raymayemir
Dec 12 2014 09:55
@BelirafoN если просто зажигать без выбора статуса то работает, видать что-то не так с условием при котором зажигается event
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 09:59

@RaiMaemirov из вашего примера

if($order->status = [’some’]){ Event::fire(’status.sold’, $this); }

Зачем имя статуса в массиве?

Ray Mayemir
@raymayemir
Dec 12 2014 10:02
@BelirafoN нее, я так не делал
Ray Mayemir
@raymayemir
Dec 12 2014 10:08
@BelirafoN все решил,
if ($order->status == ’some'){
                Event::fire('status.update',[$order]);
            }
и почемуто вот просто Event::fire('status.update',$order); не заработал
поставил [ ] и все
Maxim
@Big-Shark
Dec 12 2014 10:15
@slider23 что за установшики?
Ray Mayemir
@raymayemir
Dec 12 2014 10:26
@BelirafoN а вот смотрите у меня то получается счет в другой модели это уже дело return $this->belongsTo(‘Import'); и return $this->hasMany(‘Cash’, ’some’)?
или еще модель User связывать ?
Orel
@2byte
Dec 12 2014 10:33
Кэш лары вызывает return new Memcached; а модуль php добавляет класс Memcache
Maxim
@Big-Shark
Dec 12 2014 10:34
@2byte это 2 разных модуля как я понял
Orel
@2byte
Dec 12 2014 10:35
хм
Maxim
@Big-Shark
Dec 12 2014 10:35
Кто гиттером с телефона пользовался?
Orel
@2byte
Dec 12 2014 10:35
Я
Ray Mayemir
@raymayemir
Dec 12 2014 10:35
я
Orel
@2byte
Dec 12 2014 10:35
Ну как два разных модуля http://habrahabr.ru/post/108274/
Maxim
@Big-Shark
Dec 12 2014 10:36
Вы тоже свои сообщения не виделиипосле отправки?
Orel
@2byte
Dec 12 2014 10:36
@Big-Shark да
Maxim
@Big-Shark
Dec 12 2014 10:37
Ппц
Сделай класс эксист для мемкэш и мемкешед и глянь что покажет
Это 2 разных класса это точно, но мемкэшед чуть прокаченей
И апи у него больше
Alexandr Voronyansky
@BelirafoN
Dec 12 2014 10:38
@RaiMaemirov не понял. Если можно подробнее для непонятливых :) можно в личку
Роман Сохарев
@greabock
Dec 12 2014 10:38
и ходят слухи, что медленнее )
Maxim
@Big-Shark
Dec 12 2014 10:39
Ну хз, не замерял
Orel
@2byte
Dec 12 2014 10:39
@Big-Shark да я и так знаю что есть Memcache а нету Memcached
Maxim
@Big-Shark
Dec 12 2014 10:40
Тогда это странно, гугли, думаю на стек овеофлоутлегко найдёшь ответ
Сори что без ников и кода, с телефона не удобно
Orel
@2byte
Dec 12 2014 10:48
Для memcache нашел такой драйвер https://github.com/igormatkovic/Laravel-4-Memcache
Maxim
@Big-Shark
Dec 12 2014 10:50
Ты лучше узнай почему мемкешед не пашет)
Orel
@2byte
Dec 12 2014 10:53
Потому что я устанавливал Memcache а не Memcached
Модуль php
Maxim
@Big-Shark
Dec 12 2014 10:54
http://php.net/manual/en/memcached.installation.php тут мае на установку мемкэшед если что)
Orel
@2byte
Dec 12 2014 10:54
Я взял драйвер под лару
Вроде заработало)
Жалко что у кэша через get() нельзя обратится к группе через точку
Orel
@2byte
Dec 12 2014 11:05
Я вот хочу в мемкеш хранить имена из чпу /mp3/{song-name-name} со значением id из бд, то есть использовать мемкеш для быстрого поиска {song-name-name}, может стоит всю строку значения из бд туда засовывать ?
Alina Soboleva
@AlinaSob
Dec 12 2014 11:39
Посоветуйте, пожалуйста, js плагин для создания thumbnail'ов изображений. Чтобы юзер мог на полноразмерном изображении мышкой протянуть рамку. И отдавал бы потом серверу координаты этих четырех точек.
Евгений
@SamoilenkoEvgeniy
Dec 12 2014 11:44
Всем привет!
Подскажите пожалуйста, каким образом я могу в модели при выводе чего-либо(допустим пользователей) Каждые 10 записей делать выводить блок дополнительный?
Ну тоесть:
foreach($users as $user)
 {{ }}
// как-то определить что это десятый пользователь и вывсти блок
endforeach
NelinD
@NelinD
Dec 12 2014 11:47
@SamoilenkoEvgeniy счетчик?
Orel
@2byte
Dec 12 2014 11:48
@SamoilenkoEvgeniy
$i = 1;
foreach($users as $user) {
    if ($i == 10) echo 'block'; $i = 0;
    $i++;
}
Евгений
@SamoilenkoEvgeniy
Dec 12 2014 11:50
Да, счетчик. Но это все надо во вьюшке делать, в этом проблема
@2byte так я и сам могу)
Alina Soboleva
@AlinaSob
Dec 12 2014 11:53
Используй @for, а не @foreach
Brezhnev Ivan
@vanchelo
Dec 12 2014 11:55
$collection->chunk(10, $preserveKeys = false)
этот метод разбивает коллекцию на несколько массивов в каждом из которых по 10 объектов
Евгений
@SamoilenkoEvgeniy
Dec 12 2014 12:00
Спасибо @AlinaSob затупил совсем я(\
Brezhnev Ivan
@vanchelo
Dec 12 2014 12:04
@SamoilenkoEvgeniy
@if ($i % 10 === 0) 
<div>Реклама</div>
@endif
такое можно и с foreach сделать
@foreach($collection as $key => $value)
@if ($key % 10 === 0) 
<div>Реклама</div>
@endif
@endforeach
Andrew
@bitw
Dec 12 2014 12:28
кто-нибудь использовал https://github.com/zofe/rapyd-laravel/ ?
Ray Mayemir
@raymayemir
Dec 12 2014 12:34

крч вот посмотрите мой по моему же мнению гавно код

$val1 = Import::find('pay_un');
$val2 = Import::find('delivery_un');;
$val3 = Import::find('amt');
$val4 = Cash::find('un');
$data = $val4 - ($val3 * ($val1 + $val2));
$cash = new Cash();

$cash->un = $data;
$user = Auth::user();

$user->cashes()->save($cash);

он обнуляет поле un в бд, хД а я пытаюсь сделать что-то вроде 300 - (2*(30+30)) = 180

Brezhnev Ivan
@vanchelo
Dec 12 2014 12:40
@bitw его пилит @SCIF
и пользуется им, или пользовался
Mihail
@sektor-sumy
Dec 12 2014 15:43
всем привет, давно тут не был, скажите кто то работал с october cms?
Brezhnev Ivan
@vanchelo
Dec 12 2014 15:45
я работал
минут 10
поставил, поклацал и забыл)
Mihail
@sektor-sumy
Dec 12 2014 16:03
хм.. не стоит внимания?
Brezhnev Ivan
@vanchelo
Dec 12 2014 16:03
дело в другом
Mihail
@sektor-sumy
Dec 12 2014 16:05
?
Brezhnev Ivan
@vanchelo
Dec 12 2014 16:05
нет проекта под октябрь, вот и всё
а просто так на него смотреть не вижу смысла
это ж не фрейм
тем более там ларик, если будет необходимость, расчехлиться не сложно
Brezhnev Ivan
@vanchelo
Dec 12 2014 16:20
ВСЕМ ЧУДНЫХ ВЫХОДНЫХ!
Kirill Nesmeyanov
@SerafimArts
Dec 12 2014 18:11
чу́дных?
=)
Мне уже хватило танцев с ларкой
скоро я начну её ненавидеть +))))
Роман Сохарев
@greabock
Dec 12 2014 18:16
@vanchelo лара там как бы вообще не причем )
создатель предлагает катать код прям в админке. И код, который там надо катать, с ларавель не много общего имеет.
WebtoolsWendland
@WebtoolsWendland
Dec 12 2014 18:19
@SamoilenkoEvgeniy
@foreach ($users->chunk(10) as $userSet)

    <div class="row">

        @foreach ($userSet as $user)
            ... 
        @endforeach

    </div>

@endforeach
Роман Сохарев
@greabock
Dec 12 2014 18:21
@WebtoolsWendland а еще это можно на css решить )
WebtoolsWendland
@WebtoolsWendland
Dec 12 2014 18:23
так во вьюхе код попонятней будет, плюс этот вариант намного проще расширять
этот код Jeffry Way использовал в примере с Larabook
Роман Сохарев
@greabock
Dec 12 2014 18:25
да, на чанках это шикарный способ
Vlad Shcherbin
@VladShcherbin
Dec 12 2014 18:37
шикарный до момента, когда понадбится адаптивный шаблон
Роман Сохарев
@greabock
Dec 12 2014 18:39
а как это связано вообще?)
Vlad Shcherbin
@VladShcherbin
Dec 12 2014 18:40
@greabock плошляпил тз, my bad) подумал, что так сетку предлагают делать)
Brezhnev Ivan
@vanchelo
Dec 12 2014 18:42
гы
Roman
@TeroBlaZe
Dec 12 2014 20:44
о_О WUT? Лежал у меня на вебсервере скрипт php, никто о нём не знал, смотрю лог в реалтайме и мне тут сначала к robots.txt, которого нет, а потом к этому скрипту, обращается бот с юзерагентом Nutch-1.4, как это понять?