These are chat archives for LaravelRUS/chat

1st
Aug 2015
Andrey Baksalyar
@Baksalyar
Aug 01 2015 04:37
Доброе утро, коллеги!
У меня созрел очередной идиотский вопрос :D
О локализации сайта на Ларавеле.
Каким образом правильно локализовать какие-то заголовки и тексты на сайте, но с тем учетом, чтобы их в админке мог править человек, следящий за страницами? Первое, что приходит на ум — хранить в базе данных тексты с маркерами языка.
И вытаскивать нужный текст в зависимости от текущей локали приложения.
Но как-то это громоздко получается все.
И не знаю, есть ли другие, более феншуйные подходы? Я так понял, правильный подход — хранение нужных сообщений в папке Lang (у меня Laravel 4.2). Но надо их менять динамически, то есть, чтобы оно было в БД.
Andrey Baksalyar
@Baksalyar
Aug 01 2015 04:42
Хороший пример здесь — категории. Со временем они могут меняться и человек, который управляет контентом, может редактировать название категории, скажем, на русском и английском языке.
Maxim
@Big-Shark
Aug 01 2015 04:56
@Baksalyar еще 1 таблиска, с текстом перевода, а вообще есть достаточно много пакетов для реализации этого
Andrey Baksalyar
@Baksalyar
Aug 01 2015 04:59
Ну я так решил сделать пока:
Schema::create( 'textmessages', function ($table) {
                $table->increments('id');
                $table->string('name', 50);
                $table->string('locale', 10);
                $table->string('text', 2000);
                $table->timestamps();
            });
DenisAlliswell
@DenisAlliswell
Aug 01 2015 05:51
ребят, всем привет!
Maxim
@Big-Shark
Aug 01 2015 05:51
Привет
DenisAlliswell
@DenisAlliswell
Aug 01 2015 05:51
скажите, по какой причине может быть не видно .env файла на продакшене?
на локале все гуд
var_dump(getenv('APP_ENV'))
выдает false
@Big-Shark выручай) какие мысли?
Maxim
@Big-Shark
Aug 01 2015 05:54
@DenisAlliswell на чем прод находится, там точно есть .env ?
DenisAlliswell
@DenisAlliswell
Aug 01 2015 05:55
@Big-Shark на shared хосте, да точно есть. полная копия локальной версии
Maxim
@Big-Shark
Aug 01 2015 05:56
@DenisAlliswell так это шаред, возможно там свой инв както подкючается, и все перекрывает) надо смотреть исходники модуля, и смотреть логику подключения
4gekkman
@4gekkman
Aug 01 2015 05:56
@Baksalyar Интересный вопрос, меня тоже интересует.
DenisAlliswell
@DenisAlliswell
Aug 01 2015 05:57
тобишь забить и хардкодить конфиги?)
4gekkman
@4gekkman
Aug 01 2015 05:57
@Baksalyar Хочется узнать бест-практис подход к этому делу, чтобы не придумывать велосипед.
DenisAlliswell
@DenisAlliswell
Aug 01 2015 05:57
покопаться в исходниках модуля то на шаре кто даст :smile:
Maxim
@Big-Shark
Aug 01 2015 05:57
@DenisAlliswell забить хостера) Посмотри что в $_ENV у тебя есть вообще
@DenisAlliswell дык модуль написан на пхп, и находится как доп пакет в ларе
@4gekkman у тебя что такая же проблемма?
DenisAlliswell
@DenisAlliswell
Aug 01 2015 05:59
@Big-Shark аа ты про ларин модуль))
епт как не хочется рыться там))
@Big-Shark array(0) { } вот че там)
походу путь к этому env гдет сбит..
Maxim
@Big-Shark
Aug 01 2015 06:01
@DenisAlliswell https://github.com/vlucas/phpdotenv так вот этот пакет, там буквально пару файлов, надо посмотреть как его используют и все
DenisAlliswell
@DenisAlliswell
Aug 01 2015 06:10
@Big-Shark опа, это встроенный ? или надо подключать?
Maxim
@Big-Shark
Aug 01 2015 06:10
он уже подключен к ларе
Andrey Baksalyar
@Baksalyar
Aug 01 2015 06:14
А разве в пятой ветке нет возможности подключить полноценную конфигурацию?
Или удобен именно .env?
DenisAlliswell
@DenisAlliswell
Aug 01 2015 06:15
@Baksalyar что имеется ввиду под полноценной конфигурацией?
Andrey Baksalyar
@Baksalyar
Aug 01 2015 06:16
All of the configuration files for the Laravel framework are stored in the config directory. Each option is documented, so feel free to look through the files and get familiar with the options available to you.
Const
@umren
Aug 01 2015 06:16
.env и есть полноценная конфигурация
Andrey Baksalyar
@Baksalyar
Aug 01 2015 06:16
Я про то.
DenisAlliswell
@DenisAlliswell
Aug 01 2015 06:17
env удобен конечно. все конфиги в одном месте, два .local.env и .production.env так ваще отлично, переключаться между версиями не нужно
ну да, настройки тянутся из .env в конфиги через глобальная переменную)
Andrey Baksalyar
@Baksalyar
Aug 01 2015 06:18
Просто в 4.2 я привык использовать обычные конфиги, они не менее удобны — задаешь имя хоста для продакшена и локальной машины и вообще больше ничего не меняешь и не переключаешь.
Maxim
@Big-Shark
Aug 01 2015 06:19
@Baksalyar такое больше не прокатит)
Andrey Baksalyar
@Baksalyar
Aug 01 2015 06:19
Блин... :D
Andrey
@Insidexa
Aug 01 2015 06:31

Есть одна проблема с кодировками
я беру curl`oм данные с media
оттуда бывает приходят данные такого вида
ДОРРИВÐÐ - МИШКРВИÐОВЕÐ
пробывал декодировать на сайтах онлайн, мне типа пишут что было декодировано с Windows 1252 -> UTF-8

я декодирую через iconv, но результата нету
еще на их сайте, я это фиксил
у них в html кодировка сайта выставлена в windows 1252, в хроме я выбирал кодировку utf-8 и все нормально отображалось
но данные то приходят с крякозябрами

пробывал уже и библиотеку Encoding

nnnikolay
@nnnikolay
Aug 01 2015 06:53
@Big-Shark а как поиметь иерархию конфигов с наследованием в зависимости от окружения ? это возможно ?
capito882
@capito882
Aug 01 2015 07:32
Подскажите пожалуйста хороший скринкаст по Laravel 5.1 где бы полностью приложение создавалось, по типу блога например. На английском или русском, не важно.
berpcor
@berpcor
Aug 01 2015 07:45
Laracasts
capatillo
@capatillo
Aug 01 2015 08:04
А может кто подскажет где скачать свежие выпуски laracasts ? За последние пару месяцев интересуют.
Alexey
@Butochnikov
Aug 01 2015 08:28
@Big-Shark привет. Не написал еще разрабам чата?
berpcor
@berpcor
Aug 01 2015 08:31
@capatillo, там же, где качаешь все остальное.
Andrey Baksalyar
@Baksalyar
Aug 01 2015 08:37
@Insidexa Попробуй использовать mb_convert_encoding($curled_string, 'utf-8', 'windows-1251');
Alexander Egorov
@Amegatron
Aug 01 2015 08:38
Привет всем :)
Кто-нибудь пробовал компилить nginx с push-stream модулем?
Andrey Baksalyar
@Baksalyar
Aug 01 2015 08:40
@Amegatron И тебе привет! Спасибо за классные материалы в твоем блоге, по ним, помню, въезжал в Ларавел, в том числе. ;)
Alexander Egorov
@Amegatron
Aug 01 2015 08:41
@Baksalyar Рад был стараться :) Щас вот может продолжу писать в ближайшее время :)
Andrey Baksalyar
@Baksalyar
Aug 01 2015 08:41
@Amegatron Было бы хорошо, у тебя отлично получается.
Alexander Egorov
@Amegatron
Aug 01 2015 08:41
@Baksalyar спс :)
Щас стримил 3 часа на Livecoding.tv, хотел разобраться с broadcast'ами в L5
Но застрял на компиляции nginx'а :(
Oleg Melnik
@olegmelnik
Aug 01 2015 09:31
Кто-нибудь может посоветовать пакет для организации oauth2 авторизации в 5.1?
Oleg
@Malezha
Aug 01 2015 09:59
@Amegatron я собирал в виде пакета для убунты, есть ппа РЕПО. Только оформлено оно так себе.
Alexander Egorov
@Amegatron
Aug 01 2015 10:01
@Malezha спс, я щас по этому гайду собираю: http://www.antazy.com/2013/12/nginx-push-stream-module-ubuntu-debian.html
Если не получится, попробую по твоей ссылке разобраться
Oleg
@Malezha
Aug 01 2015 10:03
Я в принципе так и собирал, правда у меня ни стабле канал, да и ещё пару модулей добавлено.
Maxim
@Big-Shark
Aug 01 2015 10:12
@nnnikolay так нельзя, и в .env ты выносишь только переменые окружения
@Butochnikov нет, забываю все, а ктото же еще вызывался написать, уже забыл кто.
Alexander Egorov
@Amegatron
Aug 01 2015 10:25
@Malezha мне ругается nginx на
nginx: [emerg] invalid event type "poll" в конфиге push-stream'а ... не могу понять, что это значит и как исправить, гугл ничего толкового не выдает
Oleg
@Malezha
Aug 01 2015 10:29
@Amegatron ты сам собирал или из моей репы?
Alexander Egorov
@Amegatron
Aug 01 2015 10:29
сам ... щас поставил epoll, ругается на несуществующие пути, копаю дальше :)
Oleg
@Malezha
Aug 01 2015 10:30
А другой модуль, от которого зависит пуш стрим подключил?
Alexander Egorov
@Amegatron
Aug 01 2015 10:30
какой?
нигде чета не видел, чтобы он от чего-то зависел
Oleg
@Malezha
Aug 01 2015 10:32
Извиняюсь, я перепутал)
Alexander Egorov
@Amegatron
Aug 01 2015 10:33
так, вроде перестал ругаться
осталось по факту проверить, работает ли модуль
Alexander Egorov
@Amegatron
Aug 01 2015 10:39
ну судя по логам конфиг пуш-стрима подтягивается
и под него даже что-то выделяется :)
Oleg
@Malezha
Aug 01 2015 10:43
Проверил, работает?
Alexander Egorov
@Amegatron
Aug 01 2015 11:01
нет, по факту ееще не проверял
позже стрим еще раз запущу и буду дальше разбираться с броадкастами
Oleg
@Malezha
Aug 01 2015 11:06
@Amegatron ссылку на стрим дай пожалуйста
Alexander Egorov
@Amegatron
Aug 01 2015 11:06
но там только англоязычники пока смотрят
Oleg
@Malezha
Aug 01 2015 11:10
У меня как раз упала система, так что будет время посмотреть)
Alexey
@Butochnikov
Aug 01 2015 12:17
@Amegatron Привет. какой процесс разработки стримишь?
вообще этот сервис не очень удобный. поиск плохо работает, прошедшие записи все в куче, как понять последовательность не понятно.
т.е. полностью следить за разработкой чего либо сложно, т.к. нет part1, 2 и тд. пока въедешь что чел кодит и на каком месте остановился, кучу времени потеряешь
Yakov Dalinchuk
@murashki
Aug 01 2015 12:23
Коллеги, а как можно задать один обработчик на несколько роутов, типа: Route::get(['/', '/abc'], function () { ... }); Такое сработает?
berpcor
@berpcor
Aug 01 2015 12:39
@murashki, вопрос ради вопроса )
Проверь.
20 секунд времени потребует.
Yakov Dalinchuk
@murashki
Aug 01 2015 12:53
согласен. дурная привычка ))
Alexander Egorov
@Amegatron
Aug 01 2015 13:12
@Butochnikov привет :) Да чета решил постримить, конкретно решил разобраться с широковещанием событий в Л5 с применением nginx-push-stream модуля
Насчет сервиса хз, просто решил его попробовать :)
Вообще было бы здорово в формате диалога стримить, а то там только буржуи сидят
А хочется просот поболтать в процессе о чем-нить :)
Alexander Egorov
@Amegatron
Aug 01 2015 13:18
Просто вспомнил, какой формат @SerafimArts предлагал изначально - не "конференция", а просто экспромт (импровизация)
То есть я начал стримить вообще без подготовки почти, в итоге первая часть стрима растянулась на 3 часа :)))
Alexey
@Butochnikov
Aug 01 2015 13:36
@Amegatron да в том то и дело очень сложно найти на этом сервисе за кем следить, поиск по слову laravel выдает кучу всего и еще надо разобраться, что там выпало. А так русскоязычный народ есть, но мало.
Alexander Egorov
@Amegatron
Aug 01 2015 13:36
И еще там нельзя выбрать русский язык :(
Как родной стримера
Так то можно было бы и в русском сегменте стримить на ютюбе - народ думаю можно собрать в группе желающих смотреть
Yakov Dalinchuk
@murashki
Aug 01 2015 13:37
похоже на то, что нет такой возможности:
Route::get(['/', '/abc'], function () { ... });
Alexey
@Butochnikov
Aug 01 2015 13:37
@Amegatron будишь стримить, кидай куда-нибудь ссылку
с группы точно много народу придет
Alexander Egorov
@Amegatron
Aug 01 2015 13:38
@Butochnikov ок, щас хочу до Кирилла достучаться - мож он захочет тоже поучаствовать
JhaoDa
@jhaoda
Aug 01 2015 13:40
@Amegatron Серафимушка будет рассказывать, какое говно 5.х и какая няша 4.2
Не думаю, что это есть хорошо
Alexander Egorov
@Amegatron
Aug 01 2015 13:40
@jhaoda возможно :)
Yakov Dalinchuk
@murashki
Aug 01 2015 13:41

Коллеги, как считаете, если есть необходимость в кастомной функции, которая регает роуты с одним и тем же хендлером, типа:

function routesRegister ($routes, $handler)
{
    foreach ($routes as $route)
    {
        Route::get($route, $handler);
    }
}

В каком файле лучше ее описать? Если отдельный файл делать, то где его будет логичным расположить?

Alexander Egorov
@Amegatron
Aug 01 2015 13:41
Но других кандидатов навскидку у меня нет на роль собеседника, столько времени уже прошло, я никого тут не знаю почти уже, за исключением "стариков"
Но если кто захочет - пишите :)
JhaoDa
@jhaoda
Aug 01 2015 13:41
@Amegatron @greabock чоткий пацантре
Alexander Egorov
@Amegatron
Aug 01 2015 13:42
ну его я помню :)
JhaoDa
@jhaoda
Aug 01 2015 13:42
А еще можно устроить трололо-шоу и позвать афтыря пикси
Alexander Egorov
@Amegatron
Aug 01 2015 13:42
не, я хочу спокойной беседы :)
JhaoDa
@jhaoda
Aug 01 2015 13:42
И да начнется бойня!
Alexander Egorov
@Amegatron
Aug 01 2015 13:42
ибо Л5 сам еще почти не знаю, только изредка доводится поковырять
@murashki А чем плохо использовать для этого контроллеры?
JhaoDa
@jhaoda
Aug 01 2015 13:44
@Amegatron а, дак вы с Серафимом два сапога пара?:)
Alexander Egorov
@Amegatron
Aug 01 2015 13:44
@jhaoda не знаю :)))) У меня еще нет своего мнения насчет Л5 :)
Но пока в целом положительное
Серафим вообще любитель хардкора и велосипедов
bibidolphin
@bibidolphin
Aug 01 2015 13:53
Всем привет, есть вопрос по подключению к бд. В файле .env прописал кофиг, в config/database.php тоже все указал, сделал миграцию, все прошло. Начал получать данные из бд, получил connection refused, причем параметры бд в дебагере стандартные. Кто-нибудь сталкивался с такой проблемой? как решить?
JhaoDa
@jhaoda
Aug 01 2015 13:54
@bibidolphin ну если миграции прошли, то с конфигами всё ок, логично?
bibidolphin
@bibidolphin
Aug 01 2015 13:54
@jhaoda Да
JhaoDa
@jhaoda
Aug 01 2015 13:55
@bibidolphin каким-нить менеджером пробовал подключаться к базе?
bibidolphin
@bibidolphin
Aug 01 2015 13:56
@jhaoda Sequel pro, все работает. Работаю через homestead
JhaoDa
@jhaoda
Aug 01 2015 13:56
Ну тогда это проблема SSH, скорее всего
bibidolphin
@bibidolphin
Aug 01 2015 13:57
@jhaoda можно поподробнее?
JhaoDa
@jhaoda
Aug 01 2015 13:57
Homestead здесь не очень любят
А, SSH это ж когда из вне...
bibidolphin
@bibidolphin
Aug 01 2015 13:57
@jhaoda если например пытаться использовать sqlite, изменить в конфиге, то ничего не произойдет, всеравно остается стандартный mysql
тоесть и миграции туда же идут, в mysql
Alexander Egorov
@Amegatron
Aug 01 2015 13:58
@jhaoda я раньше очень любил homestead :)
bibidolphin
@bibidolphin
Aug 01 2015 13:58
А в чем проблема homestead?
у меня еще mamp есть
может быть есть у кого-то мысли куда копать?
JhaoDa
@jhaoda
Aug 01 2015 14:02
@bibidolphin ты в .env указал DB_CONNECTION=sqlite и нигде не опечатался?
@bibidolphin я же говорю, здесь не очень любят хоумстед, так что ждать ответа можно долго
@bibidolphin копать надо в сторону проверки, действительно ли в $_ENV у тебя правильный конфиг. Не возникало мысли такой?
Yakov Dalinchuk
@murashki
Aug 01 2015 14:04
@Amegatron так задача как раз в том, чтобы зарегать несколько роутов на один контроллер
JhaoDa
@jhaoda
Aug 01 2015 14:05
@murashki если ты считаешь, что тебе нужен такой хэлпер, то сделай его.
Jupeto
@PatSpiegel
Aug 01 2015 14:06
как реализовать мульти сайт на laravel 5 ?
JhaoDa
@jhaoda
Aug 01 2015 14:06
@PatSpiegel что есть «мульти сайт» в твоём понимании?
Сайт про мультики?:)
Jupeto
@PatSpiegel
Aug 01 2015 14:07
100 доменов на 1 ларавел
JhaoDa
@jhaoda
Aug 01 2015 14:08
@PatSpiegel ну в конфиге сервера указываешь, что все 100 доменов смотрят в одну папку
JhaoDa
@jhaoda
Aug 01 2015 14:08
Правда, я не понимаю, зачем одному сайту 100 разных адресов...
Илья.
@IlyaVorozhbit
Aug 01 2015 14:09
Всем доброго времени суток.
Ребят, не подскажете что нужно загуглить, чтобы получить информацию о том, как писать классы, экземпляры которых могут выполнять несколько функций в одном объявлении?
JhaoDa
@jhaoda
Aug 01 2015 14:09
@bibidolphin и что, даже после прямого указания sqlite в основном конфиге, все равно mysql юзается?
Jupeto
@PatSpiegel
Aug 01 2015 14:10
@jhaoda имеется виду, что 100 доменов с разным содержанием и шаблономи, ну и имеют парочку общих таблиц
bibidolphin
@bibidolphin
Aug 01 2015 14:10
@jhaoda ага, вот это и пугает
JhaoDa
@jhaoda
Aug 01 2015 14:10
@IlyaVorozhbit шта?
Илья.
@IlyaVorozhbit
Aug 01 2015 14:10
К примеру, $category->find()->updateIfNeeds()
JhaoDa
@jhaoda
Aug 01 2015 14:10
@PatSpiegel а зачем? Ты любитель друпала, штоле?
Jupeto
@PatSpiegel
Aug 01 2015 14:10
@jhaoda доры
JhaoDa
@jhaoda
Aug 01 2015 14:12
@PatSpiegel лучей поноса тебе, а не 100 доменов
@bibidolphin вот я и говорю, что хоумстед здесь не очень любят :)
bibidolphin
@bibidolphin
Aug 01 2015 14:13
@jhaoda что посоветуешь использовать ?
JhaoDa
@jhaoda
Aug 01 2015 14:13
@bibidolphin просто локальную машину
Илья.
@IlyaVorozhbit
Aug 01 2015 14:13
спс)
всем удачи)
bibidolphin
@bibidolphin
Aug 01 2015 14:14
@jhaoda Ок, спасибо
Yakov Dalinchuk
@murashki
Aug 01 2015 14:19
@jhaoda вопрос как раз был в том, где его расположить. Кажется нужно гуглить слово Хелпер. Ок. Спасибо.
KupueIIIKo
@KupueIIIKo
Aug 01 2015 14:54
Всем привет
Есть вопрос по middleware кто может помочь?)
JhaoDa
@jhaoda
Aug 01 2015 14:55
@KupueIIIKo ты спрашивай сразу
Роман Сохарев
@greabock
Aug 01 2015 14:56
@jhaoda @Amegatron сходка намечается? =)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 14:56
php artisan make:middleware OldMiddleware создает посредника общего) а BeforeMiddleware тоже отдельно создаеться?
JhaoDa
@jhaoda
Aug 01 2015 14:56
@greabock куда? Стримить?
Роман Сохарев
@greabock
Aug 01 2015 14:56
ну да
KupueIIIKo
@KupueIIIKo
Aug 01 2015 14:56
О стримы) хочу глянуть про что)
JhaoDa
@jhaoda
Aug 01 2015 14:57
@KupueIIIKo посредники различаются на before/after лишь способом обработки запроса, о чем написано в документации — http://laravel.com/docs/5.1/middleware#defining-middleware
@greabock не, это без меня
KupueIIIKo
@KupueIIIKo
Aug 01 2015 14:58
да я ее прочитал так и не понял) То есть Мне надо создать BeforeFirstCheckApi
JhaoDa
@jhaoda
Aug 01 2015 14:58
@greabock «Я слишком стар для этого дерьма»©
KupueIIIKo
@KupueIIIKo
Aug 01 2015 14:58
и он будет выполняться до?)
JhaoDa
@jhaoda
Aug 01 2015 14:59
@KupueIIIKo прочти раздел «Before / After Middleware»
KupueIIIKo
@KupueIIIKo
Aug 01 2015 15:00
@jhaoda Не бывает старых) Я прочел) там не написано четко как объявлять before или after и судял логики я просто понял что это надпись Before просто добавляеться и laravel определяет что выполнять надо до)
JhaoDa
@jhaoda
Aug 01 2015 15:00
@KupueIIIKo это ты круто придумал, про «надпись Before просто добавляеться и laravel определяет что выполнять надо до»
Надо Тэйлору посказать :)
@KupueIIIKo там очень четко написано, что и как надо делать. Прям два примера приведены.
KupueIIIKo
@KupueIIIKo
Aug 01 2015 15:01
Ну это вы хотите сказать что на все приложение всего 1 before и 1 after?
JhaoDa
@jhaoda
Aug 01 2015 15:02
:(
@KupueIIIKo слушай, ну ты сказал бы сразу, что не понимаешь английский
KupueIIIKo
@KupueIIIKo
Aug 01 2015 15:02
Я уже и русскую документацию прочитал)
и один фиг не догнал
JhaoDa
@jhaoda
Aug 01 2015 15:03
Это before-мидлваря:
public function handle($request, Closure $next)
{
    // Perform action
    return $next($request);
}
Это after-мидлваря:
public function handle($request, Closure $next)
{
    $response = $next($request);
    // Perform action
    return $response;
}
KupueIIIKo
@KupueIIIKo
Aug 01 2015 15:05
Вот теперь понял)
JhaoDa
@jhaoda
Aug 01 2015 15:05
@KupueIIIKo ты не смог этого понять из доки?
KupueIIIKo
@KupueIIIKo
Aug 01 2015 15:05
разница в положении строки $response = $next($request);
JhaoDa
@jhaoda
Aug 01 2015 15:05
На весь раздел ДВА куска кода. Что там понимать блин?
KupueIIIKo
@KupueIIIKo
Aug 01 2015 15:08
Сидел тупил 3 часа)
А что за стрим будет?)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 15:30
Документации конечно слабоватые вообще
JhaoDa
@jhaoda
Aug 01 2015 15:35
@KupueIIIKo допиши и сделай пулл-реквест
KupueIIIKo
@KupueIIIKo
Aug 01 2015 16:06
@jhaoda я то напишу) говнокодеров станет еще больше)
Alexander Egorov
@Amegatron
Aug 01 2015 16:28
@greabock сходка - это громко сказано :) просто думал постримить че-нить, пока сам разбираюсь с Л5
@greabock В данный момент хочу на практике проверить броадкасты
@greabock это не "мастер-класс", а просто буду писать пример работы броадкастов, параллельно вникая в этот механизм
Alexey
@Butochnikov
Aug 01 2015 16:48
@/all народ, а кто на Laracon едет?
KupueIIIKo
@KupueIIIKo
Aug 01 2015 16:54
Ссылку в студию)
Alexey
@Butochnikov
Aug 01 2015 16:58
@Amegatron когда, примерно, стримить будешь? и надо ли будет рекламировать?
Роман Сохарев
@greabock
Aug 01 2015 16:58
@Amegatron ну, в общем зовите "есливчо" )
Paul Klementyev
@klermonte
Aug 01 2015 16:59
Alexander
@bobrovskikh
Aug 01 2015 16:59
Всем привет. Подскажите, создаю поле - $table->string('content'); поидеи он должен быть как VARCHAR, но на деле, при сохранении в БД режет текст до 255
JhaoDa
@jhaoda
Aug 01 2015 17:00
@bobrovskikh и что не так?
Paul Klementyev
@klermonte
Aug 01 2015 17:00
Varchar(255)
Роман Сохарев
@greabock
Aug 01 2015 17:00
$table->string('content', 100500);
или
$table->text('content');
JhaoDa
@jhaoda
Aug 01 2015 17:00
Длина VARCHAR и есть 255 байт
Роман Сохарев
@greabock
Aug 01 2015 17:00
@jhaoda неправда =)
Alexander
@bobrovskikh
Aug 01 2015 17:00
@jhaoda судя по докам длина его 65555
@greabock спасибо, попробую text
JhaoDa
@jhaoda
Aug 01 2015 17:01
А, это CHAR 255...
Paul Klementyev
@klermonte
Aug 01 2015 17:01
@jhaoda она такая, какую укажешь
Alexander Egorov
@Amegatron
Aug 01 2015 17:02
@Butochnikov не знаю еще, либо сегодня, либо завтра. Насчет рекламы тоже не знаю, не хочу просто делать из этого какое-то высокое событие :) С другой стороны, зачем стримить, если не будет целевых зрителей ... :) В общем если и рекламить, то в нужном ключе - что мол просто "Amegatron будет разбираться с броадкастами, желающие посмотреть - переходите по ссылке в XX:YY" :) Как-то так :)
JhaoDa
@jhaoda
Aug 01 2015 17:02
@bobrovskikh 65535, а не 65555
JhaoDa
@jhaoda
Aug 01 2015 17:08
@bobrovskikh и надо учитывать, что не символов, а байт. И что «65535 bytes, which is shared among all columns»
Роман Сохарев
@greabock
Aug 01 2015 17:09
@jhaoda ну для utf-8 это равнозначно
Maxim
@Big-Shark
Aug 01 2015 17:10
Чат зануд)
JhaoDa
@jhaoda
Aug 01 2015 17:11
@greabock в utf-8 русские символы занимают два байта, разве нет?
Я не понял, опять уроды из гиттера стили поменяли?
Maxim
@Big-Shark
Aug 01 2015 17:11
@jhaoda да вроде нет
JhaoDa
@jhaoda
Aug 01 2015 17:12
@Big-Shark поменяли, шрифт изменился
Maxim
@Big-Shark
Aug 01 2015 17:13
@jhaoda у меня все как было, но я на убунту, и с приложения. Может до меня еще не докатилось.
JhaoDa
@jhaoda
Aug 01 2015 17:13
Ага, понял, это мой стиль перестал работать почему-то...
Alexander
@bobrovskikh
Aug 01 2015 17:35
@jhaoda про байты не заметил. Спасибо
4gekkman
@4gekkman
Aug 01 2015 17:39
Коллеги, а кто как борется с тем, что csrf токен в laravel 5.1 истекает со временем?
  • Вот у вас открыт документ, в котором есть несколько функций, обращающихся к серверу с помощью AJAX (с использованием токена).
  • Этот документ у вас долго находится в открытом состоянии.
  • Вы вызываете одну из этих функций, и получаете ошибку типа csrf token мисмач.
JhaoDa
@jhaoda
Aug 01 2015 17:41
@4gekkman токен не сам по себе, а зависит от сессии. Если протух токен, то протухла и сессия.
4gekkman
@4gekkman
Aug 01 2015 17:41
@jhaoda Ну в итоге то, как бороться
Делать запросы раз в N минут?
JhaoDa
@jhaoda
Aug 01 2015 17:42
@4gekkman ну а ты как думаешь? Сессия протухла, так может надо аутентифицироваться снова?
Установи срок жизни сессии больше. Или remember me сделай
4gekkman
@4gekkman
Aug 01 2015 17:43
А это безопасно?
JhaoDa
@jhaoda
Aug 01 2015 17:43
@4gekkman что «это»?
4gekkman
@4gekkman
Aug 01 2015 17:43
Не протухающая сессия
JhaoDa
@jhaoda
Aug 01 2015 17:44
Не бывает не протухающих сессий.
Илья
@iliyaZelenko
Aug 01 2015 17:44
Есть у кого перевод валидаций на Украинском языке?
4gekkman
@4gekkman
Aug 01 2015 17:45
@jhaoda Ну куки же протухают со временем, кроме вечных
Maxim
@Big-Shark
Aug 01 2015 17:45
@iliyaZelenko а разве украинский не добивили в список языковв пакете с переводами?
4gekkman
@4gekkman
Aug 01 2015 17:45
И соответствующие сессии тоже
JhaoDa
@jhaoda
Aug 01 2015 17:45
@4gekkman что это за «вечные» куки?
4gekkman
@4gekkman
Aug 01 2015 17:45
На 5 лет которые
Илья
@iliyaZelenko
Aug 01 2015 17:45
@Big-Shark где пакет этот?
JhaoDa
@jhaoda
Aug 01 2015 17:46
@4gekkman 5 лет это «вечная»?
4gekkman
@4gekkman
Aug 01 2015 17:46
Именно так, в кавычках
Илья
@iliyaZelenko
Aug 01 2015 17:46
@Big-Shark нашел, спасибо)
JhaoDa
@jhaoda
Aug 01 2015 17:47
@4gekkman ну ладно... но разве я сказал, что надо сделать срок жизни сессии 5 лет?
Maxim
@Big-Shark
Aug 01 2015 17:47
@iliyaZelenko не вижу там украинского, можно сделать пулл реквест, с русского перевести не сложно
Илья
@iliyaZelenko
Aug 01 2015 17:47
Может есть еще перевод sleepingOwl?
JhaoDa
@jhaoda
Aug 01 2015 17:47
@4gekkman короче, юзай remember me и будет тебе щасте
Илья
@iliyaZelenko
Aug 01 2015 17:47
@Big-Shark uk?
4gekkman
@4gekkman
Aug 01 2015 17:48
@jhaoda А что это за ремембер ме, я что-то подзабыл
JhaoDa
@jhaoda
Aug 01 2015 17:48
@iliyaZelenko открыть и посмотреть не пробовал?
Илья
@iliyaZelenko
Aug 01 2015 17:49
@jhaoda в пакете самом нет
@jhaoda Да и гугл не делится
Maxim
@Big-Shark
Aug 01 2015 17:49
@iliyaZelenko 'These credentials do not match our records.', Если это украинский, то я даже незнаю )
JhaoDa
@jhaoda
Aug 01 2015 17:49
@iliyaZelenko ШТА?
Maxim
@Big-Shark
Aug 01 2015 17:49
@iliyaZelenko а что там в админки перевождить то?
Илья
@iliyaZelenko
Aug 01 2015 17:50
@Big-Shark в auth они накосячили)
Maxim
@Big-Shark
Aug 01 2015 17:52
@iliyaZelenko странно почему uk называется, в украине какая локаль?
@iliyaZelenko uk_UA
Илья
@iliyaZelenko
Aug 01 2015 17:52
uk - язык ua - стран
Maxim
@Big-Shark
Aug 01 2015 17:53
мда, не знаю что у языка у вас код uk
4gekkman
@4gekkman
Aug 01 2015 17:53
@jhaoda А, аутентификационная кука
JhaoDa
@jhaoda
Aug 01 2015 17:54
@4gekkman нет, аутентификационная кука это сессионная кука
Илья
@iliyaZelenko
Aug 01 2015 17:55
Щас напишу uk для админки, выложу вам
4gekkman
@4gekkman
Aug 01 2015 17:55
@jhaoda У нас просто разные значения этих переменных ))
Maxim
@Big-Shark
Aug 01 2015 17:55
@iliyaZelenko нам? нам то зачем? ты пул реквест сделай, и все)
4gekkman
@4gekkman
Aug 01 2015 17:55
Я то привых сессионную куку называть сессионной, а ремембер ми аутентификационной )
Maxim
@Big-Shark
Aug 01 2015 17:56
@iliyaZelenko а вообще есть ли смысл именно перевода на украинский, если все понимаю по русски?
Илья
@iliyaZelenko
Aug 01 2015 17:56
@Big-Shark не знаю как это
4gekkman
@4gekkman
Aug 01 2015 17:56
@jhaoda Ну вот есть эта ремебмер ми кука. И как с её помощью сделать так, чтобы токен не протухал?
JhaoDa
@jhaoda
Aug 01 2015 17:56
@Big-Shark ты что! Как это — на москальской мове админка?!
Илья
@iliyaZelenko
Aug 01 2015 17:57
@Big-Shark в Украине многие просят чисто на Украинском, вообще не хотят видеть русский
Maxim
@Big-Shark
Aug 01 2015 17:57
@iliyaZelenko на страничке с файлом есть кнопка edit, редактируешь, дашьле сохранить, потом имя коммита, и коммит, все просто)
@iliyaZelenko ну вообщем как я и ожидал, ну их право, что могу сказать.
Илья
@iliyaZelenko
Aug 01 2015 17:58
@Big-Shark хорошо сделаю так
Maxim
@Big-Shark
Aug 01 2015 17:58
@iliyaZelenko но что в админке ты хотел перевести? интерфейс?
Илья
@iliyaZelenko
Aug 01 2015 17:58
Да
JhaoDa
@jhaoda
Aug 01 2015 17:59
@4gekkman хз, я в мидлваре это отлавливаю и отправляю юзера на аутентификацию
Но не помню, что бы такая проблема возникала хоть раз
4gekkman
@4gekkman
Aug 01 2015 18:00
@jhaoda Так когда он по новой аутентифицируется, то получит новый csrf токен. А у клиента то старый останется (сохранён в js-переменной). И когда клиент сделате ajax-запрос, получит ошибку csrftokenmismatch
Maxim
@Big-Shark
Aug 01 2015 18:00
@iliyaZelenko хз как это сделать, надо смотреть, но думаю там можно просто подменить локализейшен файлы на свои, и все)
JhaoDa
@jhaoda
Aug 01 2015 18:00
Хотя да, если сессия протухла, но есть remember-токен, то он, конечно, аутентифицируется, но csrf-токен не совпадёт...
4gekkman
@4gekkman
Aug 01 2015 18:00
И чтобы всё заработало, придтся нажимать f5, что доставляет неудобства
@jhaoda Эта проблема имеет актуальность, например, в админке, если надо, чтобы документ был долгое время открыт, а весь ajax-функционал работал...
JhaoDa
@jhaoda
Aug 01 2015 18:02
@4gekkman установи срок жизни сессии дней 10, на скорую руку если
4gekkman
@4gekkman
Aug 01 2015 18:04
@jhaoda Как вариант, но это получится решение за счёт снижения безопасности, на ровном месте
JhaoDa
@jhaoda
Aug 01 2015 18:04
Ну и токен надо брать из куки, а не юзать конструкцию типа <meta name="_token" content="{{ csrf_token() }}" />
@4gekkman да какая разница, сутки или 10 суток?
4gekkman
@4gekkman
Aug 01 2015 18:05
@jhaoda Спасибо за совет. Ну не знаю, по дефолту стоит 120 минут в ларавел 5.1
JhaoDa
@jhaoda
Aug 01 2015 18:06
@4gekkman ну тогда лови эксепшн и отдавай специальный ответ на фронт. Фронт, получив такой ответ, должен будет повторить запрос
4gekkman
@4gekkman
Aug 01 2015 18:06
А когда делаешь ajax-запрос, сессионная кука не обновляется, что-то я забыл
JhaoDa
@jhaoda
Aug 01 2015 18:07
А при повторе у него уже будет новая, правильная кука с токеном и запрос должен пройти
@4gekkman всё там обновляется
4gekkman
@4gekkman
Aug 01 2015 18:08
@jhaoda А если делать каждый час тестовый ajax-запрос к серверу из документа, чтобы кука обновлялась?
JhaoDa
@jhaoda
Aug 01 2015 18:09
@4gekkman я предложил нормальное решение с ловлей эксепшена, чем плохо?
4gekkman
@4gekkman
Aug 01 2015 18:11
@jhaoda Тоже неплохое решение
В общем, надо потестить, как удобнее делать
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:27
я вообще думаю надо от кук и сессий избавляться только лишняя нагрузка
Что кстати и заложил в основу своего Апи который пытаюсь сделать)
Надоели подходы которые нам диктуют стандарты
projct1
@projct1
Aug 01 2015 19:29
парни как отловить дублирование существующей записи (с уникальным индексом), когда вставляешь запись, чтобы не вылазила такая ошибка http://joxi.ru/823jldETw6ygmO
и чтобы как бы валидацию тут проходило http://joxi.ru/L21jx64TD6kjAX
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:31
перехвати exception
А вообще NULL значение в БД это уникальный идентификатор
projct1
@projct1
Aug 01 2015 19:32
нет
public function rules()
{
    return [
        'name' => 'required',
        'slug' => 'unique:pages'
    ];
}
JhaoDa
@jhaoda
Aug 01 2015 19:32
@KupueIIIKo да, давай дадим доступ к админке всем!
projct1
@projct1
Aug 01 2015 19:32
вот так надо по идеи
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:32
по крайней мере в mysql
@jhaoda Я выдаю токены) на определенное время клиенту)
projct1
@projct1
Aug 01 2015 19:33
просто я slug формирую в мутаторе, в модели
JhaoDa
@jhaoda
Aug 01 2015 19:33
@KupueIIIKo ты путаешь API и просто сайт
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:33
@jhaoda Дак я и клиент браузерный так же делаю)
JhaoDa
@jhaoda
Aug 01 2015 19:34
Вот, чувак написал свой браузер. А что сделали вы?..
Paul Klementyev
@klermonte
Aug 01 2015 19:35
Клиент же, а не браузер
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:35
Не браузер а клиент)
JhaoDa
@jhaoda
Aug 01 2015 19:35
Клиент браузерный это не браузер?
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:35
Нет)
Paul Klementyev
@klermonte
Aug 01 2015 19:35
Нет, это js приложение
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:35
@klermonte прямо в точку)
Paul Klementyev
@klermonte
Aug 01 2015 19:36
Браузер это http клиент
JhaoDa
@jhaoda
Aug 01 2015 19:36
Удивительно. Вот никогда бы не подумал, что браузерный клиент это js-приложение
Парни, у вас с формулировкой мыслей проблемы небольшие...
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:36
Ну он же меня понял)
Paul Klementyev
@klermonte
Aug 01 2015 19:37
Пфф, это ты скорость :D
JhaoDa
@jhaoda
Aug 01 2015 19:37
Так, совсем крошечные, но всё же...
Paul Klementyev
@klermonte
Aug 01 2015 19:37
Тьфу:D серость)
JhaoDa
@jhaoda
Aug 01 2015 19:37
@klermonte здесь можно сообщения редактировать
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:37
Кстати насчет технологий)
Paul Klementyev
@klermonte
Aug 01 2015 19:37
Вот странно, человек нас не понял, но неправы мы)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:38
Как насчет поднятия сессий по отпечатку пальца?) на новых мобилах щас почти везде ставят)
Paul Klementyev
@klermonte
Aug 01 2015 19:38
Не, в приложении чет не получается
JhaoDa
@jhaoda
Aug 01 2015 19:38
@klermonte других-то я понимаю
Paul Klementyev
@klermonte
Aug 01 2015 19:38
А вот тебя мало кто)
JhaoDa
@jhaoda
Aug 01 2015 19:38
@klermonte по себе судишь? Зря...
Paul Klementyev
@klermonte
Aug 01 2015 19:39
Ну нас минимум 2:D
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:39
@klermonte Я его сегодня понял доходчиво объяснил про midlleware)
до это сидел 3 часа тупил)
Изучаю Laravel-ку)
JhaoDa
@jhaoda
Aug 01 2015 19:40
Да, не понять доку это надо постараться
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:40
С коханы ппц сложно перибираться)
JhaoDa
@jhaoda
Aug 01 2015 19:40
@klermonte ты всё еще хочешь считать его вторым?
Paul Klementyev
@klermonte
Aug 01 2015 19:41
Белый флаг) меня просто поразило твоё непонятие фразы "браузерный клиент"
Ещё и ворчать стал насчёт формулировок
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:42
Ладно не ругайтесь)
Лучше скажите кто-нибудь на программировании из Вас разбогател?)
Я просрал 28 лет от роду и так не разбогател)
JhaoDa
@jhaoda
Aug 01 2015 19:44
@klermonte потому что браузер и есть клиент
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:45
$НЕФТЬ = КАЧАТЬНЕФТЬ(); IF(ДЕНЕГ МАЛО){ КАЧАТЬБОЛЬШЕ();}
Вот к чему я пришел
JhaoDa
@jhaoda
Aug 01 2015 19:45
А если следовать риторике W3C, то даже «агент»
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:46
если бы все так было просто)
@jhaoda я так понимаю Вы тут самый опытный)
@jhaoda У Вас есть команда?)
JhaoDa
@jhaoda
Aug 01 2015 19:47
@KupueIIIKo нет, я не самый опытный
Paul Klementyev
@klermonte
Aug 01 2015 19:47
@jhaoda да, HTTP клиент, а не клиент веб приложения
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:48
Кстати что вы думаете насчет нового эксплойта для оперативки?) который через JS внедряеться?)
JhaoDa
@jhaoda
Aug 01 2015 19:48
@klermonte правда? Открой спеку HTML или CSS.
Paul Klementyev
@klermonte
Aug 01 2015 19:50
Да, правда
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:52
Все делите правду) Долго так не прожить)
Лучше раскажите как с middleware передать переменную в контроллер)
Paul Klementyev
@klermonte
Aug 01 2015 19:53
Вот твой js, http с css вот они являются клиентом твоего php приложения. А браузер если и клиент, то только в самом широком смысле
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:53
Судя по тому что я нагуглил $this->attributes->add(['error' => 'action not found'];
Это я в middleware передаю
Paul Klementyev
@klermonte
Aug 01 2015 19:54
Эээ, как передаешь?
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:55
да я тут гуглю тока)
Paul Klementyev
@klermonte
Aug 01 2015 19:55
Можешь например в $route->params добавить нужную фигню, она в экшне будет доступна даже из списка аргументов метода
KupueIIIKo
@KupueIIIKo
Aug 01 2015 19:55
Вот тока пока это где то нашел) еще не проверял) так как не нашел примера как принять в контроллере)
Paul Klementyev
@klermonte
Aug 01 2015 19:56
Просто одноимённый аргумент метода экшна, в него автоматом это попадёт
Maxim
@MaximGlobak
Aug 01 2015 19:56
Добрый вечер, Гуру! Подскажите пожалуйста новичку, не могу найти как составить запрос для eloquent, а точнее нужна рандомная запись из первых 10 записей в таблице.
Если просто рандомную запись, то код будет Task::orderByRaw('RAND()')->first()->task;
Paul Klementyev
@klermonte
Aug 01 2015 19:57
Чисто sql это не решить, выбирай все 10 а рандомную получай в PHP
Быть может у коллекции есть даже соответствующий метод
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:01
@klermonte Не считаю что все 10 дергать верно) Проще сделать рандом числа от 1 до 10) а потом where id=Рандомное число
Во первых не будите грузить выборкой
Во вторых select отработается быстрей по первичному ключу
@klermonte Зачем ташить 10 килограмм золота) если твой только 1)
Только если нажиться) Наврятли он с 10 записей наживеться)
Maxim
@MaximGlobak
Aug 01 2015 20:01
@KupueIIIKo дело в том, что id идут не по порядку
Paul Klementyev
@klermonte
Aug 01 2015 20:03
О, ну подзапросом можно, но я хз как это в элоквент оформить
Maxim
@MaximGlobak
Aug 01 2015 20:04
на чистом sql у меня как-то получилось запрос типа select Task from tasks order by RAND() limit 10,1, тольк второй раз не получилось так воспроизвести
Paul Klementyev
@klermonte
Aug 01 2015 20:04
Фишка в том, что сначала идут фильтры и сортировка и лишь потом лимит, поэтому твоё решение ненадёжно
select from (select from tasks order by created_at desc limit 10) t order by rand() limit 1;
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:07
@MaximGlobak У тебя походу совсем база не приведена в порядок) не думал что при забитой базе у тебя запрос будет на 10 секунд улетать?)
Paul Klementyev
@klermonte
Aug 01 2015 20:07
У меня звёздочки в запросе затерлись)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:08
Я тебя и так понял)
Maxim
@MaximGlobak
Aug 01 2015 20:08
ну у меня там простая таблица только с task'ами только, пока хоть как-то рабочую версию сделать, а потом уже думал оптимизировать
Paul Klementyev
@klermonte
Aug 01 2015 20:09
Вот, но вот в элоквенте я таких запросов не делал) хз как это в ооп стиле оформить
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:09
Мне кажеться надо добавить id и сделать primary key оттуда будет с чем плясать)
делов то на минуту)
Maxim
@MaximGlobak
Aug 01 2015 20:10
id есть, но если удалять задачи и добавлять, то там будет id типа 1,2,4,16,111
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:10
Хм...
А зачем их удалять?) Может ввести поле removed boolean) и по нему отсеивать)
Не люблю удалять компромат)
Paul Klementyev
@klermonte
Aug 01 2015 20:12
Так а как ты по твоему решению сформируешь правильный рандомный id?
Rand(1,10) уже не прокатит
Maxim
@MaximGlobak
Aug 01 2015 20:15
мне кажется идея взять первые 10 и потом в php забрать одну будет лучше всего, а так как массив очень маленький, то можно сразу запихнуть его в массив, или это плохая практика?
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:17
@klermonte Тогда проще получить список сперва всех id а потом SELECT IN
Paul Klementyev
@klermonte
Aug 01 2015 20:22
@MaximGlobak нормальная практика, я уже говорил когда-то про преждевременную оптимизацию)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:26
@klermonte Во во проекты растут) а потом хватаются за голову, когда переделать лям записей в новый формат для оптимизации)
@klermonte Подскажи как с middleware передать переменную в контроллер) гуглить уже замучался
Paul Klementyev
@klermonte
Aug 01 2015 20:29
$request->route->params['paramName'] = $value;
Ну или там сеттер должен быть, если напрямую не получится взять роут и его параметры
Потом в экшне public function myAction($paramName)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:31
О как) в кохане нечего не нужно было передавать)
$this->request->params('ВОТ ЗНАЧЕНИЕ'); там по проще было)
Paul Klementyev
@klermonte
Aug 01 2015 20:34
Я быть может тебя не правильно понял) я тебе показал как передатьв экшн искусственный параметр, который не пришёл вреквесте, но который добавил мидлвер
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:34
Ну так и надо) щас попробую)
не канает)
Paul Klementyev
@klermonte
Aug 01 2015 20:38
Короче, покопался по коду ларавел., вот как будет работать: $request->route()->setParameter(name, value)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:42
Ну а дернуть его как? $request?
Paul Klementyev
@klermonte
Aug 01 2015 20:42
Я ж те показал) как обычный параметр роута, через аргумент экшна
Потом в экшне public function myAction($paramName)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:47
Заработало)
Paul Klementyev
@klermonte
Aug 01 2015 20:49
Ура, я с чистой совестью пойду спать)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 20:53
давай) удачных снов)
KupueIIIKo
@KupueIIIKo
Aug 01 2015 21:00
Все я тоже спать) Оболочку собрал для API теперь само API строчить надо(
Maxim
@MaximGlobak
Aug 01 2015 21:17

а вот еще вопрос маленький по MySQL при запросе

        $randomTask = Task::orderByRaw('RAND()')
                            ->first();

        return    $randomTask->task;

Выводит текст в кавычках, как от них можно избавиться, тоже до какого-то момента выводился без кавычек

Andrey Baksalyar
@Baksalyar
Aug 01 2015 21:18
А он в БД уже в кавычках?
Maxim
@MaximGlobak
Aug 01 2015 21:19
нет, там обычный текст String
Andrey Baksalyar
@Baksalyar
Aug 01 2015 21:21
Может просто текст с кавычками туда попал, в этот обычный String? Проверял непосредственно в БД запись?
Maxim
@MaximGlobak
Aug 01 2015 21:23
да, пока пробная бд, там всего 5 записей
Снимок-экрана-2015-08-02-в-0.21.22.jpg
при выводе записи из массива получаю тоже самое
Max
@roquie
Aug 01 2015 21:24
это вывод, как при дампе
dd()
Maxim
@MaximGlobak
Aug 01 2015 21:25
Код ajax'a
$('#btnTask').click(function() {
    $.ajax({
        url: 'getRandomTask',
        dataType: 'html',
        success: function (data) {
            $("#task-panel").html(data);
        }
    });
});
Andrey Baksalyar
@Baksalyar
Aug 01 2015 21:25
Так внутри span'а нету же кавычек?
Max
@roquie
Aug 01 2015 21:25
@MaximGlobak ничего в кишках не правил?
Maxim
@MaximGlobak
Aug 01 2015 21:25
сама страница выглядит как {{$task}}
нет, я только начал изучать
Извиняюсь, исправил
Max
@roquie
Aug 01 2015 21:27
@MaximGlobak в общем ответ я тебе дал, там по классам в css видно (100% использование dd(), т.е. дампа от симфони). А дальше пробуй поиск в шторме по этой функции
Maxim
@MaximGlobak
Aug 01 2015 21:27
Стыдно
Max
@roquie
Aug 01 2015 21:27
@MaximGlobak все норм?)
Maxim
@MaximGlobak
Aug 01 2015 21:28
да, в контроллере был дамп в конце
Andrey Baksalyar
@Baksalyar
Aug 01 2015 21:28
А че было то?
В консоль если дампить data? Тоже кавычки есть там?
console.log(data);
Max
@roquie
Aug 01 2015 21:29
@Baksalyar уже решили проблему :)
JhaoDa
@jhaoda
Aug 01 2015 21:29
@Baksalyar ты на скрин смотрел?
Max
@roquie
Aug 01 2015 21:29
о!
JhaoDa
@jhaoda
Aug 01 2015 21:29
Там видный классы от функци dd()
Max
@roquie
Aug 01 2015 21:30
@jhaoda ты то мне как раз и нужен )
JhaoDa
@jhaoda
Aug 01 2015 21:30
@Roquie мне уже ховаться у бульбу или рано? :)
Max
@roquie
Aug 01 2015 21:30
@jhaoda рано :)))
Andrey Baksalyar
@Baksalyar
Aug 01 2015 21:31
@jhaoda Ага, сорри, у меня интернет умер внезапно, поэтому такие странные сообщения. :D
JhaoDa
@jhaoda
Aug 01 2015 21:35
@Roquie ты там поэму пишешь или чо?
Max
@roquie
Aug 01 2015 21:36

@jhaoda куда надо смотреть, если внезапно не работают события? я и без них раньше жил, да вот понадобились. Все как у людей, создал слушателя, прописал подписчиков, в сервис провайдере зарегал Event::subscribre(...). И не работает. WHAT? События все стандартные, от eloquent. Прописал по душмански:

 protected static function boot()
    {
        parent::boot();

        static::deleting(function($model) {
              dd('ddasd');
        });
    }

и о господи - оно не работает :( куда смотреть? как прозреть? :(

@jhaoda проверял варианты )
JhaoDa
@jhaoda
Aug 01 2015 21:38
@Roquie тебе нужны события моделей или события вообще?
Max
@roquie
Aug 01 2015 21:38
моделей.
т.е. их прописывать в $listeners в EventServiceProvider.php не надо
должны сразу работать
JhaoDa
@jhaoda
Aug 01 2015 21:39
@Roquie ты проверял код выше предварительно убрав все Event::subscribre(...)?
Max
@roquie
Aug 01 2015 21:39
да, у меня их нигде нет, а где для тестов писал - закоменчены
//boot into EventServiceProvider.php
Event::listen('eloquent.deleting: \App\Models\Contact', function() {
                die('asdsad');
        });
тож не работает оО
JhaoDa
@jhaoda
Aug 01 2015 21:42
@Roquie даже и не знаю, что сказать. У меня работает, правда, я немного иначе сделал
protected static function boot() {
    parent::boot();
    $hooks    = ['before' => 'ing', 'after' => 'ed'];
    $radicals = ['sav', 'creat', 'updat', 'delet'];
    foreach ($radicals as $rad) {
        foreach ($hooks as $hook => $event) {
            $method = $hook . ucfirst($rad) . 'e';
            $eventMethod = $rad . $event;
            static::$eventMethod(function($model) use($method) {
                return $model->$method($model);
            });
        }
    }
}
После чего создаю в модели методы типа
public function beforeSave()
{
}
Max
@roquie
Aug 01 2015 21:46
@jhaoda интересно. Но у меня тогда будет много дублей кода. Мне надо использовать 1 обработчик на несколько событий.
JhaoDa
@jhaoda
Aug 01 2015 21:49
@Roquie ну вот такой же код из 4.2, работает прекрасно
static::created(function($model) {
    $model->postSave();
});
Этот код вообще в трейте был
@Roquie никакой пакет не может вешаться на события моделей и возвращать false в обработчике?
Max
@roquie
Aug 01 2015 21:50
@jhaoda у меня телефоны в базе хранятся в raw формате (89111231111). А выводятся в красивом, типа 8 (911) 123-11-11. Хранятся они не в одной таблице. Поэтому надо на 10 событий прикрутить 5 к rawToPretty и 5 кprettyToRaw обработку.
@jhaoda хм. я сомневаюсь, что этот сниппет как-то мешает:
  /**
     * Указывается список полей, в которые должен подставиться NULL,
     * если передано пустое (с пробелами) значение.
     *
     * @var array
     */
    protected $nullable = [];

    protected static function boot()
    {
        parent::boot();

        static::saving(function($model) {
            self::setNullables($model);
        });
    }

    /**
     * Set empty nullable fields to null
     *
     * @param object $model
     */
    protected static function setNullables($model)
    {
        foreach($model->nullable as $field) {
            if(empty(trim($model->{$field}))) {
                $model->{$field} = null;
            }
        }
    }
JhaoDa
@jhaoda
Aug 01 2015 21:52
@Roquie а если его отключить?
Max
@roquie
Aug 01 2015 21:53
@jhaoda тоже самое :(((((
@jhaoda и удаляю я через orm, а не билдер
Contact::where('user_id', $userId)->where('id', $contactId)->delete();
WTF?
JhaoDa
@jhaoda
Aug 01 2015 21:54
@Roquie это как раз через билдер удаление, если я правильно помню...
Max
@roquie
Aug 01 2015 21:55
во бля
простите за красноречие
@jhaoda хм. и как мне соблюсти тоже условие при удалении? не вот я не хочу использовать этот способ http://laravel.com/docs/5.1/eloquent#deleting-models
т.к. тогда можно будет удалить любой контакт, который будет передан в запросе (а не тот который принадлежит юзеру)
JhaoDa
@jhaoda
Aug 01 2015 21:58
@Roquie сначала получи модель, а потом её удаляй
Max
@roquie
Aug 01 2015 22:04
@jhaoda мне вернет коллекцию, где метод where совсем не то :(
JhaoDa
@jhaoda
Aug 01 2015 22:04
@Roquie получи их айдишники и удали пачкой через Model::destroy
Max
@roquie
Aug 01 2015 22:05
@jhaoda у меня 1 запись
JhaoDa
@jhaoda
Aug 01 2015 22:05
@Roquie ну тем более никаких проблем
Max
@roquie
Aug 01 2015 22:11
@jhaoda блин, давай на пальцах, чтобы ты понял о чем я. Представим, у нас есть 10 контактов Пети и 5 контактов Маши. Удаление идет с помощью get запроса (внезапно) contact/1 с помощью Contact::destroy(1) мы удалим запись Пети. Все в ажуре. Но Петя парень злой и захотел удалить контакты Маши и передал 14 айдишник contact/14 который оказался номером Маши. The end. Маша прифигела :) Чтобы этого не допустить, можно удалить записи через предварительно расставленные связи (id юзера передавать не придется и удаление сделает ORM). Но минус в том, что цепочка со временем возрастает, а user_id есть в каждой таблице... поэтому проще использовать 2 where для это цели.
JhaoDa
@jhaoda
Aug 01 2015 22:13
@Roquie
$c = Contact::where('user_id', $userId)->where('id', $contactId)->get();
$c->delete(); // теперь $c — модель и события сработают
Max
@roquie
Aug 01 2015 22:14
@jhaoda в 2 запроса? oO билдер вызывается же ....
JhaoDa
@jhaoda
Aug 01 2015 22:14
@Roquie ну ты определись, что тебе важнее — события или два запроса
Max
@roquie
Aug 01 2015 22:14
" теперь $c — модель и события сработают"
@jhaoda what? get() это же метод билдера ))))
вернее, метод where это уже builder, и то что за ним - тоже, возвращает collection*
ошибочка :\
Call to undefined method Illuminate\Database\Eloquent\Collection::delete()
JhaoDa
@jhaoda
Aug 01 2015 22:17
@Roquie ты проверь, прежде чем говорить
Max
@roquie
Aug 01 2015 22:17
@jhaoda проверил, ошибка выше )
JhaoDa
@jhaoda
Aug 01 2015 22:17
Я, правда, ошибся в том, что не get(), а first()
Ибо с get() будет коллекция
Max
@roquie
Aug 01 2015 22:18
да, тут ты прав, спасибо :)
как-то это все не есть хорошо
JhaoDa
@jhaoda
Aug 01 2015 22:19
@Roquie что именно?
Max
@roquie
Aug 01 2015 22:19
подобные манипуляции с каждой моделью на всех CRUD действиях
JhaoDa
@jhaoda
Aug 01 2015 22:20
Не понимаю, в чем проблема
Для действий с моделью её надо получить. После выполнения действий её надо сохранить (удалить). Два запроса в любом случае.
Max
@roquie
Aug 01 2015 22:21
в реляционных базах все обычно крутится около какого нить родительского объекта (само собой мб не 1), типа user, который как fk прописан в остальных таблицах
JhaoDa
@jhaoda
Aug 01 2015 22:21
Если же ты хочешь манипулировать не моделями, а строками в базе, то забудь про события
@Roquie при чем тут ключи?
Max
@roquie
Aug 01 2015 22:23
при том, что при выполнении каждого CRUD действия, приходится писать Model::whereUserId(1)->whereId()... а не сразу Model::find(1)
JhaoDa
@jhaoda
Aug 01 2015 22:24
@Roquie сделай скоуп или сразу метод, этот скоуп применяющий и возвращающий модель
Max
@roquie
Aug 01 2015 22:26
тогда я точно распрощаюсь с эвентами )
JhaoDa
@jhaoda
Aug 01 2015 22:26
@Roquie с чего вдруг? Ты не знаешь, как работают скоупы?
Max
@roquie
Aug 01 2015 22:27
знаю. просто мысль ушла в сторону реализации без скоупов
глупый вопрос. Использование auth()->id() в модели православно? оО
Max
@roquie
Aug 01 2015 22:35
@jhaoda в общем, спасибо. Надоел я тебе :))