These are chat archives for LaravelRUS/chat

8th
May 2014
Alexander Zhuravlev
@SCIF
May 08 2014 03:26
Гмм. Что-то я снова в тупике по вопросам манипуляции массивами. Есть многомерный массив. Нужно убить все записи с определённым ключом (или значением, как проще). Что-то ничего кроме рекурсии в голову не приходит.
slider23
@slider23
May 08 2014 05:41
@TeroBlaZe Я писал вчера - тебе нужен в модели Invoice метод getBalanceAttribute(). Тогда по $invoice->balance будет вызываться этот магический метод. Ну или презентеры юзать, но они все-таки логически для другого.
Maxim
@Big-Shark
May 08 2014 05:42
@SCIF ты прям вообще глубину не знаешь?
slider23
@slider23
May 08 2014 05:45
@SCIF array_map() ?
Alexander Zhuravlev
@SCIF
May 08 2014 06:04
@Big-Shark , я в общем-то принял, что знаю и уже сделал.
@slider23 , а он таки умеет убивать элементы??
slider23
@slider23
May 08 2014 06:08
он умеет обрабатывать элементы массива твоей функцией, а там ты можешь делать все, что угодно
Alexander Zhuravlev
@SCIF
May 08 2014 06:10
@slider23 , я уже прыгал вокруг этого — он не умеет убивать элементы и менять ключи
slider23
@slider23
May 08 2014 06:12
посмотри тогда еще http://brianhaveri.github.io/Underscore.php/
Alexander Zhuravlev
@SCIF
May 08 2014 06:12
Глянул доку, наверно всё-таки я перепутал с array_walk(), но мап возвращает массив значений — короче поломает структуру
http://brianhaveri.github.io/Underscore.php/#without подошло бы, если рекурсивно умеет это делать. Да уже вопрос протух — я решил это средствами фьюловского Arr:: класса и знания структуры массива.
Ещё попутно узнал, что array_keys() умеет делать интересное, если передать второй аргумент. Был положительно впечатлён
slider23
@slider23
May 08 2014 07:05
Это что же получается, у laravel есть HMVC из коробки, можно контроллеры из контроллеров вызывать ? App::make('PagesController')->showPage($id); http://www.laravel-tricks.com/tricks/routing-pretty-urls-to-items-with-specific-ids
Orel
@2byte
May 08 2014 07:06
@slider23 я в global.php вызывал так страницу 404
Можно Фасад зарегистрировать из сервиса?
Maxim
@Big-Shark
May 08 2014 07:09
@slider23 Тут только вопрос, что всякие ург каррент и тд будут возвращать, как их различать между собой
slider23
@slider23
May 08 2014 07:24

кто-нить юзал --sleep в очередях ? Какая-то странная вещь написана в мануале: In addition, you may specify the number of seconds to wait before polling for new jobs:

php artisan queue:listen --sleep=5

Note that the queue only "sleeps" if no jobs are on the queue. If more jobs are available, the queue will continue to work them without sleeping.

Maxim
@Big-Shark
May 08 2014 07:25
@slider23 я юзал, а в чем вопрос?
slider23
@slider23
May 08 2014 07:25
Я всегда думал, что это время простоя между запусками. А последнее предложение меня напрягло
Maxim
@Big-Shark
May 08 2014 07:25
там прикол в чем, слип выполняется только когда сервер очередей пуст, если задачи есть, они выполняются сразу
slider23
@slider23
May 08 2014 07:26
Оно выполняет задачу и 5 секунд ждет, а потом выполняет следующую ? Или ждет 5 секунд, а потом начинает выполнять все как обычно ?
А какой смысл тогда в слипе, если очередь пуста ?..
Maxim
@Big-Shark
May 08 2014 07:27
не, он выполняет задачу, потом берет еще одну, и выполняет ее, и так дотех пор пока сервер очередей не ответит что задачь больше нет, когда нет задачь, листерен засыпает на 5 секунд, и после снова опрашивает сервер очередей
slider23
@slider23
May 08 2014 07:27
понятно, спасибо
Maxim
@Big-Shark
May 08 2014 07:27
чтобы не мучать сервер очередей постоянными опросами)
slider23
@slider23
May 08 2014 07:28
да, теперь ясно. :)
Это надо будет по-человечески расписать в мануале.
Maxim
@Big-Shark
May 08 2014 07:28
@slider23 попробуй )
@slider23 слип не используется каждую задачу, так как задачи часто ставятся пачками, типа уменьшить изображения, и отослать письмо при создании нового запроса допустим.
slider23
@slider23
May 08 2014 07:30
Я как раз сейчас перевожу queues
Maxim
@Big-Shark
May 08 2014 07:31
@slider23 хотел сказать тебе огромное спасибо за твои переводы.
slider23
@slider23
May 08 2014 07:32
Спасибо! Я их по большей части причесываю, там текст в основном от ProgerXP.
Но новое приходится переводить, да.
Orel
@2byte
May 08 2014 07:35
Фасад из сервиса зарегистрировать нельзя?
Alexander Egorov
@Amegatron
May 08 2014 07:37
фасады не регистируются
slider23
@slider23
May 08 2014 07:37
ТЫ биндинг имеешь в виду ? Он в сервисе и делается, по идее
А, нет, алиас еще надо прописывать в app.php
Alexander Egorov
@Amegatron
May 08 2014 07:38
ну алиас - это не фасад
Orel
@2byte
May 08 2014 07:39
Мне нужно что бы он вызывался как алиас из app.php
Alexander Egorov
@Amegatron
May 08 2014 07:40
ну в чем вопрос тогда? в app.php и прописывай алиас, либо как-то это можно сделать через App, надо посмотреть
slider23
@slider23
May 08 2014 07:40
Без добавления в алиасы фасад как фасад работать не будет. А вот можно ли добавиться в алиас на лету - это вопрос.
Alexander Egorov
@Amegatron
May 08 2014 07:41
как-то должно быть можно. А насчет алиасов - почему это фасад не будет работать без алиаса?
slider23
@slider23
May 08 2014 07:41
Походу нельзя, так как пакеты, которые юзают фасады, просят в процессе установки себя прописать в aliases руками. Дебагбар тот же.
Orel
@2byte
May 08 2014 07:41
Может через конфиг добавить значение в массив алиасов ?
Из сервиса
Alexander Egorov
@Amegatron
May 08 2014 07:42
просят только для удобства
slider23
@slider23
May 08 2014 07:48
Хм, по идее, можно и на лету, если везде обращаться \Full\Path\Facade::method()
@2byte ты все по доке делаешь ? http://laravel.com/docs/facades#creating-facades
Alexander Egorov
@Amegatron
May 08 2014 07:50
насчет динамических алиасов, вроде можно так добавлять:
use \Illuminate\Foundation\AliasLoader;

AliasLoader::getInstance()->alias('MyAlias', 'Full\Class\Name');
Orel
@2byte
May 08 2014 07:50
Я фасад обычно не биндил, а просто заносил в алиас
Alexander Egorov
@Amegatron
May 08 2014 07:52
странно, что этот метод не используется ни в одном пакете - только ручное добавление в конфиг
видимо из-за возможного конфликта имен
slider23
@slider23
May 08 2014 07:52
Фасад надо биндить
Alexander Egorov
@Amegatron
May 08 2014 07:53
биндить надо только "низлежащий" класс, а сам фасад сам по себе может быть
slider23
@slider23
May 08 2014 07:53
Попробуй забиндить и посмотреть, работает ли
Ну да, сам фасад, где getFacadeAccessor - биндить не надо, на него биндят класс, который, собственно, будет работать.
Maxim
@Big-Shark
May 08 2014 07:59
Я немного не в тему, но может кто посоветует DIY PC kit или неттоп какой с и7 ?
slider23
@slider23
May 08 2014 08:55
хорошее предложение было, жаль, не взяли laravel/framework#1578 . "Раз пакет есть, пусть в пакете будет". А такое нельзя в пакете, такое должно быть встроено.
Roman
@TeroBlaZe
May 08 2014 09:02
@slider23 а я тебе тоже вчера писал, что мутаторы/акцессоры в моём понимании вообще для другого созданы, а не для решения проблемы, как у меня. Они преобразуют само поле существующей модели и после этого не воспользоваться изначальным значением например после разбития числа на сотни, не сравнить его с другим, и получается либо во вьюхе нужно делать форматирование, либо писать метод но не преобразователь, в моделе.
И тут возникает проблема вызова этого метода, когда модели НЕ существует. Приходится писать кучу других стрёмных функций с проверками на нулы, возвращения стандартных значений, которые могли бы вернуть, если бы модель не была нулом и т.д. Вот я думаю, может в модели Invoice просто захаркодить свойство balance = 0 и тогда вызывать не $user->invoice->balance, а $user->getInvoice()->balance, где getInvoice это в модели User метод с телом return is_null($this->invoice) ? new Invoice() : $this->invoice;
Orel
@2byte
May 08 2014 09:05
@slider23 http://laravel.com/docs/facades#creating-facades тут биндится не фасад, а сам класс, это понятно что можно забиндить класс и обращаться к нему через IoC App :: make('class')->method()
Orel
@2byte
May 08 2014 09:20
@Amegatron твой вариант с созданием алиаса на лету работает :+1:
Roman
@TeroBlaZe
May 08 2014 09:35

Черт побери, по ходу я решил свою траблу, добавив преобразователь не к полю модели, а к методу о_0..

class User {
    public function donate() {
        return $this->hasOne('Donate');
    }
    public function getDonateAttribute() {
        return is_null($this->donate()->first()) ? new Donate() : $this->donate()->first();
    }
}

class Donate {
    public function getBalanceAttribute($val) {
        return is_null($val)? 0 : $val;
    }
    public function getFormattedBalanceAttribute() {
        return number_format($this->balance);
    }
}

//controller
$user->donate->balance возвращает в любом случае либо число, либо 0 если всё полохо, а $user->donate->formatted_balance возвращает преобразованное число и никаких нулов и Trying to get property of non-object!!!

Roman
@TeroBlaZe
May 08 2014 09:45
и теперь возникла трабла с Eager loading.... $user->donate->balance в лупе выводит хренову тонну запросов
Roman
@TeroBlaZe
May 08 2014 10:02
как раз из-за getDonateAttribute примененного к методу =(
Roman
@TeroBlaZe
May 08 2014 10:30
О БОГИ оно заработало! public function getDonateAttribute() { // $don = $this->donate; // не пашет! и странно почему, видимо круговая зависимость $don = $this->relations['donate']; return is_null($don ) ? new Donate() : $don; }
Orel
@2byte
May 08 2014 10:33
:smile:
Roman
@TeroBlaZe
May 08 2014 10:34
ахаха лооол не долго фраер танцевал! убираем User::with('donate')->get() в контроллере и вся модель юзера ломается с Undefined index: donate :D
как бы я в итоге поля из таблица donate тупо в таблицу Users на запихал ...
slider23
@slider23
May 08 2014 10:43
В крайнем случае можно сделать метод getDonate с запросом на query builder. и вызывать его.
Twent
@twent
May 08 2014 10:48
Всем привет! Помогите разобраться с роутингом. Как обрабатывать несуществующие адреса?
Twent
@twent
May 08 2014 10:57
@slider23, большое спасибо!
Переход на страницу админки я закрыл, используя роутинг.
App::missing(function($exception)
{
return Response::view('errors.missing', array(), 404);
});
А как закрыть страницы входа и регистрации для уже вошедшего пользователя?
сори, не то
Route::group(array('after' => 'auth'), function () {
Route::get('login', 'HomeController@getLogin');
Route::get('register', 'HomeController@getRegister');
});
'''
Route::group(array('after' => 'auth'), function () {
Route::get('login', 'HomeController@getLogin');
Route::get('register', 'HomeController@getRegister');
});
'''
slider23
@slider23
May 08 2014 11:00
Я бы пускал, но в контроллере проверял и редиректил на морду
залогиненых
или лучше поправить фильтр Auth
Route::group(array('before' => 'nonauth'), function () {
Route::filter('nonauth', function()
{
    if ( ! Auth::guest())
    {
        return Redirect::to('home');
    }
});
Twent
@twent
May 08 2014 11:26
С помощью контроллера всё ок.
С группой и фильтром до меня не дошло, жаль.
slider23
@slider23
May 08 2014 11:31
Route::group(array('before' => 'nonauth'), function () {
Route::get('login', 'HomeController@getLogin');
Route::get('register', 'HomeController@getRegister');
});
и или в роутах или подключенном app/filters.php пишешь фильтр nonauth, который я выше привел
Maxim Seshuk
@maximseshuk
May 08 2014 11:46
Всем привет. Не подскажите, как-то через php в виджете ВКОНТАКТЕ "Авторизация" авторизироваться можно?
Orel
@2byte
May 08 2014 11:48
Или пускать только к методу для логирования, в конструкторе контроллера вызывать фильтр
class IndexController extends BaseController {
    function __constructor()
    {
        if (!Request :: is('route/login')) {
            $this->beforeFilter('auth');
        }
    }
}
Maxim Seshuk
@maximseshuk
May 08 2014 11:48

alt как-то через php в виджете ВКОНТАКТЕ "Авторизация" авторизироваться можно?

Прикрепил ещё картинку

slider23
@slider23
May 08 2014 11:48
Наверное можно, если подобрать http-запрос.
Orel
@2byte
May 08 2014 11:49
@maximseshuk http://vk.com/dev/Auth
Maxim Seshuk
@maximseshuk
May 08 2014 11:50

Это вывод самого виджета

мне нужно через php, авторизироваться на сайте где он стоит

Буду очень благодарен за любую помощь :)
Orel
@2byte
May 08 2014 11:51
@maximseshuk такой запрос раньше работал, возможно и сейчас http://vk.com/login.php?login=login&password=pass
Maxim Seshuk
@maximseshuk
May 08 2014 11:51
@2byte это просто авторизация в вк, с виджетом слегка другая история
Orel
@2byte
May 08 2014 11:52
@maximseshuk а что тебе нужно
Maxim Seshuk
@maximseshuk
May 08 2014 11:52
@2byte войти именно через этот виджет.
Orel
@2byte
May 08 2014 11:53
Ну так входи)
Maxim Seshuk
@maximseshuk
May 08 2014 11:53
:D дак как,
Orel
@2byte
May 08 2014 11:54

Ты документация читаешь

Виджет поддерживает два вида авторизации:
обычный - пользователь будет переадресован на указанный в параметре authUrl адрес с полями: uid, first_name, last_name, photo, photo_rec, hash

Вот получаешь ты данные того кто авторизовался в вк на свой url
Maxim Seshuk
@maximseshuk
May 08 2014 11:55

Читаю
в моей ситуации на сайте стоит с переадресацией на authUrl

я подумал, хорошо, я просто авторизируюсь. но меня смутило это "Для проверки авторизации Вы можете использовать полученный параметр hash, сравнив его с md5 подписью от app_id+user_id+secret_key, например md5(194253766748fTanppCrNSeuYPbA4ENCo). "

я могу указать app_id и user_id, но откуда я возьму secret_key

если поможете понять откуда его взять, то я бы просто вручную на authUrl отправил бы данные

Orel
@2byte
May 08 2014 11:56
Ты когда форму заполняешь и сохраняешь, у тебя создается приложение вк
Там есть его ид
Maxim Seshuk
@maximseshuk
May 08 2014 11:57
я не владелец приложения :)
Orel
@2byte
May 08 2014 11:58
Вот сейчас ты сохранил форму с настройками для сайта, иди сюда http://vk.com/apps?act=settings
Maxim Seshuk
@maximseshuk
May 08 2014 11:58
Сайт не мой, мне нужно на чужом сайте пройти эту авторизация через php
Alexey
@Butochnikov
May 08 2014 11:59
Всем привет. Кто-нибудь знает такой сервис который бы публиковал сообщения сразу во все известные соц. сети включая Вконтакт?
Maxim Seshuk
@maximseshuk
May 08 2014 11:59
Да, но платные
Alexey
@Butochnikov
May 08 2014 11:59
???
Orel
@2byte
May 08 2014 11:59
@maximseshuk ну тогда отследи запросы виджета и выполняй php
@2byte https не будет ли помехой?
Orel
@2byte
May 08 2014 12:00
Нет
Maxim Seshuk
@maximseshuk
May 08 2014 12:01
@2byte спасибо :) Буду пробовать
Кстати, кто-то уже пробовал October CMS?
Мне дак уже не терпится посмотреть, а ещё 15 числа ждать
Alexey
@Butochnikov
May 08 2014 12:03
@maximseshuk спасибо, а ему можно доверять? а то стремно выглядит сервис.
Maxim Seshuk
@maximseshuk
May 08 2014 12:09
@Butochnikov да. Известный сервис. Почитай отзывы в интернете :)
Maxim
@Big-Shark
May 08 2014 12:18
@twent array_key_exist или isset тебе на что)
Twent
@twent
May 08 2014 12:19
@2byte, спасибо большое за помощь. Вот что вышло в результате в роутах и фильтрах: http://laravel.io/bin/JyJo7
Буду рад комментариям по упрощению редиректа с '/'
Maxim
@Big-Shark
May 08 2014 12:20
@Butochnikov ты же программист, надо самому написать такой сервис)
Twent
@twent
May 08 2014 12:25
ошибся адресатом, благодарность вам, @slider23
slider23
@slider23
May 08 2014 12:26
@Butochnikov Есть вот такой вот робот: https://ifttt.com/
Maxim Seshuk
@maximseshuk
May 08 2014 12:27
@slider23 vk не поддерживает
Maxim
@Big-Shark
May 08 2014 12:27
Вот блин, и я ошибся, собирался написать @TeroBlaZe а написал @twent
Так что повторюсь @TeroBlaZe чтобы не было ошибки " Undefined index: donate ", используй array_key_exists или isset
Alexey
@Butochnikov
May 08 2014 12:31
@Big-Shark да уж думал, но столько всего надо написать. а еще как "тыжпрограммист" приходится много чего делать )))
@slider23 по-моему этот сервис немного не о том
Maxim
@Big-Shark
May 08 2014 12:33
Планируется ли перевод "Let's talk about CMSs" ?
Alexey
@Butochnikov
May 08 2014 12:36
@Big-Shark "штатных" переводчиков нет... а так, напишу сегодня вечером пост про помощь с переводами. людей стало больше, может кто поможет.
slider23
@slider23
May 08 2014 12:37
Я перевожу документацию, но на бОльшее знаний и времени не хватает :)
Maxim
@Big-Shark
May 08 2014 12:37
@Butochnikov Я могу худо, бедно пробовать переводить на русский, но мне нужны хотя бы сабы, а на слух я плохо воспринимаю
Alexey
@Butochnikov
May 08 2014 12:38
да, @slider23 с докой помогает сообществу, подключайтесь.
@Big-Shark а youtube сабы автоматом не ставит?
Maxim
@Big-Shark
May 08 2014 12:39
@Butochnikov ставит, но процентов 80 в обычной речи он неправильно распознает, а в сленге и того больше.
Alexander Zhuravlev
@SCIF
May 08 2014 12:46

http://www.opennet.ru/opennews/art.shtml?num=39724

Такими темпами народ на хак не будет переходить

Alexey
@Butochnikov
May 08 2014 12:47
@SCIF а надо переходить?
Maxim
@Big-Shark
May 08 2014 12:48
@Butochnikov Я бы не отказался от перехода)
Alexander Zhuravlev
@SCIF
May 08 2014 12:49
@Butochnikov , какого ответа ожидаешь? :) Да, надо! Ломимся всем стадом!
@Butochnikov, хак — вещь о которой я мечтал. Статичная типизация и пыхосинтаксис.
Alexey
@Butochnikov
May 08 2014 12:52
@SCIF я не тороплюсь со всякими переходами. время, обычно, все по своим местам расставляет.
Alexander Zhuravlev
@SCIF
May 08 2014 12:53
@Butochnikov , проекты такого масштаба без помощи и активной позиции сообщества, к сожалению, невозможны.
Alexey
@Butochnikov
May 08 2014 12:58
@SCIF конечно, но в мире PHP еще недавно на 4 сидели, теперь с 5.3 слезть не могут )
Alexander Zhuravlev
@SCIF
May 08 2014 12:58
Либо будет узконишевым продуктом, либо станет мейнстримом. Чем дольше будет нишевым, тем меньше шансов стать мейнстримом.
Alexey
@Butochnikov
May 08 2014 12:59
о, уже перевели http://habrahabr.ru/post/222185/
Alexander Zhuravlev
@SCIF
May 08 2014 13:15
Вот трындец :)) У меня домашний ноут не сильно свежий (2гб оперы) и я на него воткнул x86 версию дебиана. А hhvm оказывается скомпилен только под amd64
Alexey
@Butochnikov
May 08 2014 13:18
остаемся на pure php )))
Alexander Zhuravlev
@SCIF
May 08 2014 13:20
@Butochnikov , неправильный диагноз. Правильный — забываем про x86 :D
Alexey
@Butochnikov
May 08 2014 13:51
@SCIF готов переставить?
Alexander Zhuravlev
@SCIF
May 08 2014 14:16
Да, конечно. Буду обновляться до 8.0 и попробую ещё и архитектуру сменить
slider23
@slider23
May 08 2014 17:08
Хороший ios-стайл css-js-фреймворк для мобильных приложений http://onsenui.io/
Orel
@2byte
May 08 2014 17:15
Кто нибудь пользовался методом eloquent whereExists ?
Roman
@TeroBlaZe
May 08 2014 18:12
@Big-Shark Извиняюсь, и как это isset должен мне помочь?
    public function getDonateAttribute() {
        $don = $this->relations['donate'];
        return is_null($don) ? new Donate() : $don;
    }
Brezhnev Ivan
@vanchelo
May 08 2014 18:14
$this->relations['donate'] = isset($this->relations['donate']) ? $this->relation['donate'] : $this->donate();
может так?

или так

if ( ! isset($this->relations['donate'])
{
    $this->relations['donate'] = $this->donate();
}

только я вот не знаю надо делать может так

if ( ! isset($this->relations['donate'])
{
    $this->relations['donate'] = $this->donate()->getResults();
}
второй вариант правильный
Roman
@TeroBlaZe
May 08 2014 18:18
а значешь к чему он приводит в цикле?
string 'select * from `users`' (length=21)
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
int 1111
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
int 333
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
null
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
null
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
null
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
string 'select * from `donates` where `donates`.`user_id` = ? limit 1' (length=61)
Brezhnev Ivan
@vanchelo
May 08 2014 18:18
покажи цикл
ты достаешь данные с методом with('donation') ?
Roman
@TeroBlaZe
May 08 2014 18:19
    $users = User::all();
    foreach ($users as $user) {
       if(is_null($user->donate)){continue;}
       var_dump($user->donate->balance);
    }
Brezhnev Ivan
@vanchelo
May 08 2014 18:20
$users = User::with('donation')->all();
Roman
@TeroBlaZe
May 08 2014 18:20
нет, если использовать with то ошибки о несуществующем отношении нет
Brezhnev Ivan
@vanchelo
May 08 2014 18:20
в цикле нельзя делать
а этот пресентер кто-то использовал https://github.com/laracasts/Presenter ?
Roman
@TeroBlaZe
May 08 2014 18:23
так стоп, да я знаю, что нельзя такое делать, просто у меня даже при User::find(1)->donate->balance вываливалось 3 запроса, вместо двух, а сейчас вроде нормально
Brezhnev Ivan
@vanchelo
May 08 2014 18:23
потому что через with надо связанные данные получать если у тебя много записей
Roman
@TeroBlaZe
May 08 2014 18:26
@vanchelo спасибо, походу именно getResults() мне всё это время и не хватало, теперь "тьфу-тьфу-тьфу" на первый взгляд работает, как надо
кстати ни кто не хочет себе мозг поломать немного? почему так происходит? http://www.youtube.com/watch?v=XpQo_FR-doM если кто не поймет что происходит я попробую на пальцах объяснить
Alexey
@Butochnikov
May 08 2014 18:42
Orel
@2byte
May 08 2014 18:51
Можно с помощью js window.open открыть другой сайт и залезть в его дом ????
slider23
@slider23
May 08 2014 18:56
вроде нет, это запрещено
Roman
@TeroBlaZe
May 08 2014 19:01
Ну что, видео глянули? Есть у кого идеи как связать две таблицы в разных бд по внешнему ключу из строки? в принципе оно то работает, если запрос одиночный, но вот eager loading не работает в этом случае почему-то
Orel
@2byte
May 08 2014 19:02
@slider23 Очень Очень жаль. В фрейме такое тоже не проделать?
Alexey
@Butochnikov
May 08 2014 19:04
и во фрейме.... если только фрейм не с твоего домена или сайт разрешает кроссдоменные запросы
зачем тебе это?
slider23
@slider23
May 08 2014 19:05
@TeroBlaZe так там же регистры разные, все ок.
Roman
@TeroBlaZe
May 08 2014 19:05
но WHY??? такой же SQL запрос напрямую в бд возвращает как надо
Alexey
@Butochnikov
May 08 2014 19:07
mike <> Mike
slider23
@slider23
May 08 2014 19:07
ну можно покопаться на предмет strict mode mysql
Roman
@TeroBlaZe
May 08 2014 19:07
SELECT WHERE IN не чувствителен к регистру
slider23
@slider23
May 08 2014 19:07
сие неожиданно для меня :)
Roman
@TeroBlaZe
May 08 2014 19:08
ты не представляешь, как это было неожиданно для меня. У меня две базы связаны между собой через одну таблицу по полю с именем...
Orel
@2byte
May 08 2014 19:09
@Butochnikov очень нужно
Alexey
@Butochnikov
May 08 2014 19:10
@2byte тогда открывай эту страницу на своем домене
slider23
@slider23
May 08 2014 19:11
И правда. "По умолчанию в MySQL строки (char, varchar, text) регистронезависимы. Таким образом строки "Пример" и "примеР" идентичны. "
Наличие у сличения окончания _ci (например, utf8_general_ci) указывает, что оно регистронезависимо (case insensitive).
Roman
@TeroBlaZe
May 08 2014 19:13
при том, что сама база в формате case-insensitive
хаха
slider23
@slider23
May 08 2014 19:14
COLLATE можно указывать для запроса. Может, laravel это делает ?
Roman
@TeroBlaZe
May 08 2014 19:15
вся соль в том, что если делать голым sql запросом то всё работает, а если это делает ORM то не работает
и еще особенность такая, что массив то появляется если делать такой запрос, но он пустой
ну ведь по дефолту в конфиге бд лары стоит utf8_unicode_ci
Orel
@2byte
May 08 2014 19:17
@Butochnikov мне нужно открыть окно чужой сайт и управлять им как браузером )
Roman
@TeroBlaZe
May 08 2014 19:24
кстати а есть возможность как-то указать сразу для всех запросов в транзакции, что нужно использовать определенное соединение? а то как-то вызывать метод connection() в каждом запросе не айс смотрится. Пробовал DB::connection('asd')->transaction{ - не слушается
Alexey
@Butochnikov
May 08 2014 19:26
@2byte я тебе написал. ты можешь загрузить с помощью PHP страницу и раздать ее через свой домен и теперь ты можешь с ней обращаться как со своим сайтом
а так, ни кто тебе не даст на чужом сайте что угодно делать.
slider23
@slider23
May 08 2014 19:28
@2byte я тебе писал, какой функционал надо юзать для подобных вещей. Альтернативы нет.
Alexey
@Butochnikov
May 08 2014 19:29
или юзай casperjs
Orel
@2byte
May 08 2014 19:37
@slider23 типа selenium ?
@Butochnikov мне не просто нужно работать с дом, а кликать на кнопки
Brezhnev Ivan
@vanchelo
May 08 2014 19:38
http://symfony.com/components/BrowserKit вот еще есть если через PHP
Кликать на кнопки умеет и CasperJS
Alexey
@Butochnikov
May 08 2014 19:39
каспер, селениум и т.д.
Orel
@2byte
May 08 2014 19:39
Так еще нужно выполнять не от сервера, а от пользователя
Brezhnev Ivan
@vanchelo
May 08 2014 19:40
да и на пхп есть масса библиотек которые умеют эмулировать браузер
Alexey
@Butochnikov
May 08 2014 19:41
на руби, питоне, го. много удобных либ.
Orel
@2byte
May 08 2014 19:46
Вообщем, для чего мне это нужно, делаю сервис 20 друзей в вк, регистрируешь авторизовываешься в вк, и через api твой ак кидает заявки в друзья таким же участникам, так же в обратную тоже получаешь еще 20 друзей. Дело в том, что такие методы api доступны только для Standalone-приложений, а именно требуется авторизация пользователя через браузер, после чего редирект с токеном происходит на https://oauth.vk.com/blank.html#access_tone=token&user_id=id домен можно и поменять на свой, но приложение будет ведь отправлять апи запросы от имени пользователя к примеру на андроиде, с сервера не примет запрос потому что ип другой,а не пользователя, пробовал посылать просто запрос фреймом, но тоже палит, типа не известная ошибка говорит
Можно сэмулировать авторизацию и получить токен для ип своего сервера, но тут никто не захочет вводить свой логин и пароль от вк
Selenium не могу воспользоваться, скрипт работает на хостинге reg.ru, никакого админства
Alexey
@Butochnikov
May 08 2014 19:50
так заведи нормальный сервак
Orel
@2byte
May 08 2014 19:51
Ради такого сервиса не стоит)
Alexey
@Butochnikov
May 08 2014 19:52
хотя я так и не понял в чем фишка сервиса. получить 20 друзей за регистрацию?
Orel
@2byte
May 08 2014 19:53
Получить друзей за счет таких же кто хочет добавить друзей один раз в сутки от твоего ака кидаются 20 заявок, и приходят тебе 20 заявок
Alexey
@Butochnikov
May 08 2014 19:55
так не проще юзверю в сервисе выкидывать список из 20 шт. по которым он сам отправит заявку в друзья?
Orel
@2byte
May 08 2014 19:57
Вот такой сервис был 10 друзей он закрылся, я захотел автоматизировать
Да и вообще не для себя
Brezhnev Ivan
@vanchelo
May 08 2014 19:57
лажа какая-то., я так и не понял смысла
зачем мне 100500 друзей?
Orel
@2byte
May 08 2014 19:58
@vanchelo вот смысл на то, тебе нужны друзья в вк, регистрируешь и каждые сутки по 40 друзей получаешь
Brezhnev Ivan
@vanchelo
May 08 2014 19:59
так в чем смысл?
Alexey
@Butochnikov
May 08 2014 19:59
@2byte не мудри.. я конечно не знаю API вконтакта, но даже 10-20 заявок, тем более в сутки, не так сложно отправить... тут ведь главное тем, кто в сервисе. тем с кем договорились.
Orel
@2byte
May 08 2014 20:00
@vanchelo тебе не нужны, а кто занимается продвижением (SMM менеджер еще кажется называют) в вк, маркетингом, бизнесом и т.д, тем нужны 100500 друзей
Brezhnev Ivan
@vanchelo
May 08 2014 20:00
любые не нужны, или у тебя таргетинг?
зачем магазину 100500 10-ти летних?
Alexey
@Butochnikov
May 08 2014 20:01
в вк более 3000 друзей вроде уже низя или я ошибаюсь?
Orel
@2byte
May 08 2014 20:01
@Butochnikov ну вот теперь я и думаю, что если они пришли за друзьями, значит же им нет смысла никого не добавить и нажать, жду друзей, обе стороны заинтересованы
Alexey
@Butochnikov
May 08 2014 20:01
начни с простого, усложнить всегда успеешь.
Brezhnev Ivan
@vanchelo
May 08 2014 20:01
ты хочешь добавлять только тех что у тебя уже в сервисе?
Orel
@2byte
May 08 2014 20:02
@vanchelo да
Brezhnev Ivan
@vanchelo
May 08 2014 20:02
а авторизовывать как будешь?
я так понял что ты хочешь от имени юзера зайти на страницу вконтакте другого чела и нажать добавить в друзья?
Orel
@2byte
May 08 2014 20:04
@vanchelo я уже выше написал как я хотел через апи сделать, но вк разрешает доступ к таким методам только для приложений, тут без сервера не обойтись
@vanchelo это делается через api
Brezhnev Ivan
@vanchelo
May 08 2014 20:04
зачем тогда тебе эмулировать браузер?
Orel
@2byte
May 08 2014 20:04
Вы никогда не работали с вк апи?)
Brezhnev Ivan
@vanchelo
May 08 2014 20:05
причем тут апи, ты писал про тыканье кнопок
это и дураку понятно что через API всё делается красиво
Orel
@2byte
May 08 2014 20:05
@vanchelo это я уже потом тыкать хотел, когда с апи все ясно стало
Brezhnev Ivan
@vanchelo
May 08 2014 20:06
так и не пиши за него
а то только путаница получается
Orel
@2byte
May 08 2014 20:07
Все накрылось медным тазом
Brezhnev Ivan
@vanchelo
May 08 2014 20:08
ты еще тот алхимик)
Orel
@2byte
May 08 2014 20:10
Делал бы для себя, на vps поставил бы софт и тыкал бы хоть по кнопкам )
Brezhnev Ivan
@vanchelo
May 08 2014 20:10
а как бы ты логинился?
Orel
@2byte
May 08 2014 20:12
Хотя да, опять же не захотят вводить данные от вк
Brezhnev Ivan
@vanchelo
May 08 2014 20:13
ага
Orel
@2byte
May 08 2014 20:13
Может плагин под хром сделать :dancer:
Alexey
@Butochnikov
May 08 2014 20:13
вот и сделай им сервис подбора друзей и учитывай кто свои "договора" выполнил
Brezhnev Ivan
@vanchelo
May 08 2014 20:14
плагином можно
Orel
@2byte
May 08 2014 20:14
@Butochnikov ну это единственное с помощью js контролить клики ссылок
Плагином я ботов делал, конечно можно
Еще вк в iframe не открывается, видимо подумали об этом
Американская корпорация Apple имеет возможность передавать по запросу властей США не только идентификационные данные своих клиентов, но и личные фотографии, список контактов, переписку, документы и другую информацию, говорится в новой политике Apple по работе с правоохранительными органами и властями США.
Orel
@2byte
May 08 2014 20:29
Мне?
Brezhnev Ivan
@vanchelo
May 08 2014 20:29
просто для информации) т.е. не только тебе)
Orel
@2byte
May 08 2014 20:30
Они же весь мир прослушивают
Orel
@2byte
May 08 2014 20:35
Лицензия phpstorm заканчивается через 3 дня (
а я EAP ставлю :D халявные 30 дней
Maxim
@Big-Shark
May 08 2014 23:02
@TeroBlaZe Ты разобрался с " Undefined index: donate "?