These are chat archives for LaravelRUS/chat

1st
Apr 2014
Alexander Zhuravlev
@SCIF
Apr 01 2014 00:00
А зачем я тебе замечание №2 писал? :)
Andrey
@Quiss
Apr 01 2014 00:01
абзац) 4 часа утра, а я не могу текст распарсить :))))
дожили )
а за линк спасибо) помогает)
отдельно*
Alexander Zhuravlev
@SCIF
Apr 01 2014 00:11
Распарсил? Заработало?
Andrey
@Quiss
Apr 01 2014 00:11
неа, но благодаря ресурсу по чуть-чуть начинаю втыкать
Alexander Zhuravlev
@SCIF
Apr 01 2014 00:12
Твоему шаблону соответствует ДВЕ подстроки. Твой preg_match() выкуривает одно. Но в данном случае дело во флаге U. Поставь его и попробуй
Andrey
@Quiss
Apr 01 2014 00:13
o_O флаг U даже на другую регулярку помог) спасибо)
удивительно
Alexander Zhuravlev
@SCIF
Apr 01 2014 00:13
Посмотри что за флаг, проникнись
Andrey
@Quiss
Apr 01 2014 00:14
ок ща почитаю
Alexander Zhuravlev
@SCIF
Apr 01 2014 00:14
Полезный флаг, его нужно помнить
Andrey
@Quiss
Apr 01 2014 00:17
[ul][li]Type:  [url=/hearthstone/cards=4]Minion[/url] (Elite)[/li][li]Class:  [color=c4]Rogue[/color][/li][li]Set: [url=/hearthstone/cards?filter=cs=3]Expert[/url][/li][li]Quality:  [color=q5]Legendary[/color][/li][li]Crafted ([tooltip=tooltip_normal]1600[/tooltip] / [tooltip=tooltip_golden]3200
preg_match_all('/Type:  \[url=(.*)\](.*)\[\/url]/U', $match[1][0], $match);
получилось :)
Alexander Zhuravlev
@SCIF
Apr 01 2014 00:22
@Quiss , на здоровье
Andrey
@Quiss
Apr 01 2014 00:22
ещ> раз спасибо)
блин гребанная клавиатура мака, я никогда не привыкну где здесь буква Ё %)
slider23
@slider23
Apr 01 2014 04:05
Оказывается, первое название Laravel - это Bootplant
Maxim
@Big-Shark
Apr 01 2014 04:13
))) хаха, смешное
slider23
@slider23
Apr 01 2014 04:19
А сам фреймворк назван в честь замка Cair Paravel из Нарнии.
Кэр-Па́равель (Кэр-Па́раваль, Кэйр-Паравел и пр. — различные транслитерации англ. Cair Paravel от валл. caer — «замок», англ. paravail — «меньший», «нижний» или «внизу», здесь — «под Асланом») — вымышленный замок из мира Нарнии, резиденция королей Нарнии.
Под Асланом ходим, в общем, братья. :)
Maxim
@Big-Shark
Apr 01 2014 04:21
ты где это раскопал?
Andrey
@Quiss
Apr 01 2014 08:11
@slider23 если я тебя пущу на мой мак, сможешь помочь с инсталяцией ларавела ? =)
У меня проблема то что в Mamp'e нет mCrypt, гугл не помог, обновление и откат версии MAMP тож не помогло
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:12
mcrypt это дополнение к пхп а не к мамп
Andrey
@Quiss
Apr 01 2014 08:12
ну я знаю да)
но в пакете мампа его нет
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:13
нужно просто прописать или раскомментировать в php.ini extension=mcrypt.so
Andrey
@Quiss
Apr 01 2014 08:13
а как его поставить я не догоняю
@vanchelo там все ок, я проверял
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:13
качнуть с сайта php.net
Andrey
@Quiss
Apr 01 2014 08:13
php -m возвращает массив без mcrypt, все есть кроме mcrypt =)
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:13
или как в убунте apt-get install php-mcrypt
или сначала поискать apt-get search mcrypt
Andrey
@Quiss
Apr 01 2014 08:14
на маке не понял как заюзать "apt-get install"
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:14
я думаю на маке аналогично, просто команды другие
какой у тебя менеджер пакетов?
Andrey
@Quiss
Apr 01 2014 08:14
я ваще хрен его как этим маком пользоваться )))
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:14
brew вроде?
Andrey
@Quiss
Apr 01 2014 08:15
я рут сбрасывал пару часов) а ты мне о менеджере пакетов говоришь)
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:15
просто я помню что тебе слайдер советовал его поставить
Andrey
@Quiss
Apr 01 2014 08:16
Самое удивительное что в php.ini включен mcrypt
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:16
а в папке exts есть он?
или в ext
Andrey
@Quiss
Apr 01 2014 08:16
если честно не помню, не посмотрел, а ща на работе, нет возможности посмотреть
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:17
так а как ты хотел чтобы тебе слайдер помог?
Andrey
@Quiss
Apr 01 2014 08:17
ну мак сутками работает) я бы кинул ему доступ как добрался бы домой, а как у него бы время было бы он бы приконектился)
если бы он смог помочь*)
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:17
)
Orel
@2byte
Apr 01 2014 08:18
@Quiss подобная ситуация была с json. В гуле нашел команду для активации модуля php.
Andrey
@Quiss
Apr 01 2014 08:18
инфы конфедициальной там нет, кроме пароля от WiFi. Но я могу его сказать и так)
А ну ещё Angry Birds там) и все)
Brezhnev Ivan
@vanchelo
Apr 01 2014 08:21
тогда думаю поможет)
Brezhnev Ivan
@vanchelo
Apr 01 2014 09:42
https://github.com/Zizaco/mongolid-laravel не плохая библиотека
и он тут иначе связи назвал, referenceMany и referenceOne, а не как в SQL hasMany и hasOne
кто как думает, на сколько это логично?
slider23
@slider23
Apr 01 2014 10:07
@Quiss я не юзал mamp, я у себя все с помощью brew настраивал, mamp ставил один раз, увидел, какой там ужас в структуре папок и снес его.
просто mamp это самое простое
но не может быть, чтобы не было решения в гугле. если самый популярный фреймворк не идет под самым популярным Денвером на самой популярной ос - должен быть какой-то кипиш.
Andrey
@Quiss
Apr 01 2014 10:14
@slider23 да это может быть из за крякнутой версии
@slider23 к ней не придрешься же, ибо она крякнутая.
Alexey
@Butochnikov
Apr 01 2014 10:38
может уже надо начать отказываться от всяких там денверов и прочих mamp? прошлый же век, или я не прав?
Andrey
@Quiss
Apr 01 2014 10:52
@Butochnikov надо, просто я Мак ОСъю вообще не умею пользоваться =) а разбираться времени нет.
Brezhnev Ivan
@vanchelo
Apr 01 2014 10:53
так поставь Win
и не парься
Andrey
@Quiss
Apr 01 2014 10:53
@vanchelo на мак поставить вин?
Brezhnev Ivan
@vanchelo
Apr 01 2014 10:53
да
а что тебя пугает?
Andrey
@Quiss
Apr 01 2014 10:53
@vanchelo как-то стремно если это не V'Box
Brezhnev Ivan
@vanchelo
Apr 01 2014 10:53
та же платформа
IBM PC
тем более у тебя наверное Intel
Andrey
@Quiss
Apr 01 2014 10:54
мне проще SuSe поставить или Ubuntu
ими рулить мне удобнее, если честно
Brezhnev Ivan
@vanchelo
Apr 01 2014 10:54
так поставь
если проще
Andrey
@Quiss
Apr 01 2014 10:55
рядом с мак-осью встанет?
не знаешь?
Brezhnev Ivan
@vanchelo
Apr 01 2014 10:55
да
Ubunut без проблем должен стать
он свой загрузчик поставит и всё
Andrey
@Quiss
Apr 01 2014 10:56
ну будем надеяться что как в Win будет =)
Alexey
@Butochnikov
Apr 01 2014 11:03
не понял, а чем мак ось не устраивает? да и vagran везде есть
Andrey
@Quiss
Apr 01 2014 11:04
@Butochnikov да я понять не могу как там настроить какой-нибудь веб-сервер, что-бы был mcrypt, что-бы поставить лару.
Alexey
@Butochnikov
Apr 01 2014 11:07
слушай, возьми готовую сборку vagrant и запускай одной командой. готовая виртуальная машина c ларой и прочими прелестями.
Andrey
@Quiss
Apr 01 2014 11:07
хм
сразу пред-установлена лара?
Alexey
@Butochnikov
Apr 01 2014 11:08
хотя и php в маке тоже без проблем
Sergey Vinogradov
@vursen
Apr 01 2014 12:30
@SCIF актуально, еще не решил пока.(
Alexander Zhuravlev
@SCIF
Apr 01 2014 12:31
@pettsoner , а с сопоставлениями/collation/set names всё ок?
Sergey Vinogradov
@vursen
Apr 01 2014 12:33
@SCIF Я использую sqlite, мб в этом проблема?
Brezhnev Ivan
@vanchelo
Apr 01 2014 12:33
в SQLite UTF8
Sergey Vinogradov
@vursen
Apr 01 2014 12:33
Да по идее все ок должно быть, но почему-то возвращает пустой результат.
Я про это :) пытаюсь реализовать поиск по записям.
$query = Input::get('query');
$posts = BlogPost::with('tags', 'comments')
                    ->where('title', 'LIKE', '%'. $query . '%')
                    ->orWhere('body', 'LIKE', '%'. $query . '%')
                    ->get();

dd($posts->toArray());
Brezhnev Ivan
@vanchelo
Apr 01 2014 12:35
в body лучше через LIKE не искать, сделай индекс FULLTEXT по полю body
а потом искать запросом
SELECT * FROM table WHERE MATCH (body) AGAINST ('какое-то слово или предложение')
Sergey Vinogradov
@vursen
Apr 01 2014 12:38
Так, это интересный вариант, где-то уже видел :)
Brezhnev Ivan
@vanchelo
Apr 01 2014 12:38
это полнотекстовый поиск
по title LIKE'ом еще можно искать а вот по тексту не желательно
Alexander Zhuravlev
@SCIF
Apr 01 2014 12:39
А лучше не использовать sqlite :D
Brezhnev Ivan
@vanchelo
Apr 01 2014 12:39
тем более когда с двух сторон %%
Alexander Zhuravlev
@SCIF
Apr 01 2014 12:40
@pettsoner, а извлекаемые данные не приходится в iconv/mb_convert сувать?
Sergey Vinogradov
@vursen
Apr 01 2014 12:45
@SCIF это не мое пожелание, к сожалению, я бы сам использовал mysql.) С данными все ок, они в utf8.
Там еще проблема в том, что у меня в body текст из html-редактора, как по нему нормально искать, тоже не пойму.
Alexander Zhuravlev
@SCIF
Apr 01 2014 12:48
Ох ёпт... В пхпбб для этого по-моему хранится второе поле, без тэгов, по нему и осуществляется полнотекстовый поиск
Sergey Vinogradov
@vursen
Apr 01 2014 12:49
Упс.:D
Brezhnev Ivan
@vanchelo
Apr 01 2014 12:53
а мускул не умеет теги резать при индексации?
Sergey Vinogradov
@vursen
Apr 01 2014 13:15
А кто-нибудь Sphinx Search пользовался?
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:16
Во человек до чего дошёл
@pettsoner , оно тебе нужно? Если да, то крайне сомневаюсь, что sqlite верный выбор.
Sergey Vinogradov
@vursen
Apr 01 2014 13:18
Ок, проще сделать fulltext индекс?
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:18
Смотря какая цель
Речь про какую нагрузку, кол-во записей?
Sergey Vinogradov
@vursen
Apr 01 2014 13:18
В принципе можно и mysql все перевести, просто клиент просит sqlite.
Нагрузка совсем не большая, не более 5000 записей, если я не ошибаюсь.
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:19
Давай определяться :)
Sergey Vinogradov
@vursen
Apr 01 2014 13:20
С sqlite/mysql?
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:20
С нагрузкой
Для 5000 записей, точно не нужно юзать индексёры внешние. Достаточно полнотекстового поиска.
Sergey Vinogradov
@vursen
Apr 01 2014 13:22
А когда имеет смысл использовать внешние? когда >1000000?
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:23
При таком кол-ве товаров обычно хочется уже фасеты, всякие там «подсказки с этим покупали» и прочие рюши. Там и рулят индексёры.
Rafkat Galiullin
@neolite
Apr 01 2014 13:26
кто нибудь работал с очередями в ларе?
Sergey Vinogradov
@vursen
Apr 01 2014 13:27
Окей, буду тогда через индексы пробовать.
Только вот вряд ли русский язык заработает.(
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:30

@pettsoner , omg.

Actually not. String comparison works only with ascii characters (sort, upper, lower and like). If you are using non-ascii chars you should install plugin, which is like whole SQLite in size.

Звучит странно и дико. Ну всякие roundcube ведь работают с русскими именами, а там вроде sqlite....
Sergey Vinogradov
@vursen
Apr 01 2014 13:31
Елки-палки.
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:34
@pettsoner , гм. Ну в любом случае регистронезависимого поиска по утф8 без плясок, ты не получишь. Я не вижу, чтобы там что-нибудь про регистрозависимый поиск было, но это ведь и не важно — нужна независимость от регистра
Sergey Vinogradov
@vursen
Apr 01 2014 13:37
Нда, желательно конечно. Эх, не думал, что такие сложности будут.(
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:40
Знакомый делился тем, какая няшка этот sqlite. Селекты может тысячами в секунду делать, короче загляденье. Через пару месяцев он делился следующей интересной инфой — приходилось делать пару джойнов (или подзапросы, не помню точно), в общем-то что-то весьма тривиальное. И запросы стали исполняться по … … 80 сек. ИХ таких несколько, но вот есть и хоть ты что с ними делай. Ну решили профилировать. Неделя прошла, по колено в sqlite. Вторая — итог: сократили почти в 3.5 раза, что-то в районе 20-25сек (там уже какие-то оптимизации компиляции, ещё какие-то твики нетривиальные). Ради интереса поставили мускуль, импортнули базу. … 0.4сек. Глаз задёргался, второй с пола подобрали и начали по полу шарить в поисках челюсти.
Ессно ни к чему не принуждаю и было это давно, но слюней/соплей при описании этого всего было пролито много.
Sergey Vinogradov
@vursen
Apr 01 2014 13:42
Ахах.
Я уже и сам склоняюсь к mysql, просто заказчик ставил условие sqlite использовать, но надеюсь его уговорить.)
Sergey Vinogradov
@vursen
Apr 01 2014 13:48
Ух ты, кажется заработал русский поиск:D
Поставил LIKE на поля title, keywords, и все заработало...
Brezhnev Ivan
@vanchelo
Apr 01 2014 13:51
как сделать в MYSQL insert если дублируется PK?
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:52
INSERT … ON DUPLICATE KEY …
@vanchelo , то, что надо?
slider23
@slider23
Apr 01 2014 13:55
@Quiss первым делом сделай файл <? phpinfo() ?> и посмотри, откуда берется php.ini и есть ли там mcrypt.so
Brezhnev Ivan
@vanchelo
Apr 01 2014 13:55
О, щас проверю
@SCIF а он обновит данные?
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:56
@vanchelo , ты доку глянь, там можно воткнуть IGNORE либо SET
slider23
@slider23
Apr 01 2014 13:56
А потом - если "мне проще SuSe поставить или Ubuntu", то потрать полчаса, почитай про пакетный менеджер homebrew и настрой себе все как хочешь.
Brezhnev Ivan
@vanchelo
Apr 01 2014 13:57
а UPDATE если заменить на INSERT?
наоборот(
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:57
Тоже самое по-моему проканает
Хотя я не понял. СТоять
Что на что заменить??? UPDATE … ON DUPLICATE KEY UPDATE??
Brezhnev Ivan
@vanchelo
Apr 01 2014 13:58
не
INSERT -> UPDATE
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:59
Ну? А я что написал?
Brezhnev Ivan
@vanchelo
Apr 01 2014 13:59
ну и соотв. запрос поменять немного
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:59
Брр. Инсерить в случае наличия такого ида?
Brezhnev Ivan
@vanchelo
Apr 01 2014 13:59
тогда же не нужен ON DUPLICATE
Alexander Zhuravlev
@SCIF
Apr 01 2014 13:59
Вот и я не понимаю что тебе нужно :D
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:00
короче два файла
в них есть повторяющиеся PK
надо их импортнуть
slider23
@slider23
Apr 01 2014 14:00
INSERT INTO table SET pk='$value' ON DUPLICATE KEY UPDATE pk=pk
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:01
и так во всех прописать?
slider23
@slider23
Apr 01 2014 14:02
ты хочешь один большой sql-запрос сделать ?
я в таком случае (импорт файла) пишу php-скриптик, который читает файл, разбирает и вставляет
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:02
не
там много маленьких запросов
один файл один инсерт
но в этом инсерте 1000 записей
спс за советы, буду тесты гонять)))
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:04
СОотв. разобратсья, что делать с повторяющимися идами — обновлять, скипать
Andrey
@Quiss
Apr 01 2014 14:05
А кто мне подскажет, я где-то читал что желательно идентификаторы, которые удаляются например 500 502 503 заполнять, т.е следующим будет не 504,а 501, а потом уже 504...
это чем можно сделать? =)
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:06
заполнять если нужно
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:06
Омг. Ахренеть. Больше на бред смахивает, ИХМО.
Andrey
@Quiss
Apr 01 2014 14:06
ну так не сканить же каждый раз БД на нумерацию
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:06
можно в отдельной таблице хранить удаленные ID
а потом при вставке берешь первый удаляешь
но зачем?
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:07
Я извиняюсь, а что это за проект с такими требованими хитрыми??
Andrey
@Quiss
Apr 01 2014 14:07
хз, типо для работы бд, типо так ему легче запросы обрабатывать в таблицах где мноооого записей)
это не проект, это где-то я читал про MySQL
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:07
а если у меня не int а просто строка в качестве PK
Andrey
@Quiss
Apr 01 2014 14:07
а про это там не писалось)
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:08
ыыыы)
Andrey
@Quiss
Apr 01 2014 14:08
я просто запомнил эту часть, что нужно что-бы индексы шли по порядку, и заполнять не достающие
в памяти отложилось)
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:08
к примеру когда хранят сессии обычно в качестве PK ставят SESSION_ID
но тоже кто как)
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:09

Forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Donald Knuth.

Brezhnev Ivan
@vanchelo
Apr 01 2014 14:09
))))
Andrey
@Quiss
Apr 01 2014 14:11
лол) целое обсуждение
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:11
@Quiss , а ещё используй на сервере только короткие шлейфы до хдд — по ним байты быстрей добегают до винта, они ведь короче. Обычная физика
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:11
лень читать)
согласен, и лучше золотые)
или сверхпроводники)
Andrey
@Quiss
Apr 01 2014 14:12
@SCIF И мониторы набок переворачивают, что-бы файл быстрее аплодился?
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:12
@Quiss , а там какое физ. обоснование?
Andrey
@Quiss
Apr 01 2014 14:12
"Полнузок вниз"
Притяжение
%)
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:12
Ох. Буду знать.
Brezhnev Ivan
@vanchelo
Apr 01 2014 14:13
притяжение жидких кристаллов?
Andrey
@Quiss
Apr 01 2014 14:13
)))
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:13
@Quiss, я на самом деле хз, может оно и быстрей, но это не то, чем нужно голову занимать.
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:14
Я был таким пыонэром. Счётчики на триггерах, хардкорные и чистые скл запросы. Бред. Дебилизм. Лучше бы за это время освоил орм и sphinx. В 10 раз быстрей бы всё работало несмотря на неоптимизированные запросы.
Кто vespakoen/menu юзает?
slider23
@slider23
Apr 01 2014 14:15
php-пакет для brew - https://github.com/josegonzalez/homebrew-php/
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:17
С brew и пыхой была лишь одна проблема, я так и не сообразил как ему адекватно задать относительные пути (у меня правда там слегка хитрожопо было сделано, с версиями и симлинками я перемутил ранее). Захреначил тупо абсолютные пути в nginx и php и всё отлично заработало. Пакеты давным давно в его бд есть и не нужно ничего руками тащить.
Alexander Zhuravlev
@SCIF
Apr 01 2014 14:47
Нужна помощь по блейду

У меня есть некий шаблон layout. В нём есть такое:

@section('content')
{{ $content }}
@stop

Я расширяю этот шаблон и делаю так:

@section('content')
<h2>Добро пожаловать!</h2>
@stop
Получаю ErrorException Undefined variable: content
Alexey
@Butochnikov
Apr 01 2014 15:03
так а кто переменную передавать будет?
читай внимательно http://laravel.com/docs/templates
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:05
@Butochnikov , речь вестимо про этот раздел? http://laravel.com/docs/templates#blade-templating
Alexey
@Butochnikov
Apr 01 2014 15:06
ага
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:06
Честно — читал раз Н. Не вижу где я косячу :(
Я расширяю шаблон. И заменяю родительскую секцию. Нахрена мне передавать туда переменную, которая заведомо не будет выведена — в толк не могу взять :(
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:07
@section('content')
{{ $content }}
@stop
надо ж
@yield('content')
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:07
Объясните философию. В доке просто — «Вау! Секции можно переопределять. Ну и родителей вызывать».
Alexey
@Butochnikov
Apr 01 2014 15:08
я про ошибку.... если ты здесь {{ $content }} указал переменную то ее надо передать в шаблон
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:08
@Butochnikov , я эту секцию переопределяю. Это родительский шаблон
@vanchelo , а таки разве yield применяется не в случаях, когда нет уверенности, что данная секция будет переопределена?
Блин. В доке не указана разница между yield и section. И согласно примеру, оба они могут быть переопределены
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:11
```@yield('blabla')``` нужно наследовать в шаблоне
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:11
Дык я же уже спрашивал про разницу. Мне ответили, что section — это просто блочный вариант yield'а.
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:12
типа того только с дефолтными данными
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:12
Нет.
Именно разница в блочности.
Alexey
@Butochnikov
Apr 01 2014 15:12
у yield есть полезная возможность `@yield('section', 'Default Content');`
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:12
ну так ты сам всё знаешь)
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:12
yield может не уметь дефолтные параметры
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:12
так я за section пишу
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:12
Ну это никак не проливает свет почему у меня не работает эта хреновина
@vanchelo , они идентичны, просто разная запись. Верно?
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:12
а у тебя переменная $content инициализированна?
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:13
Да на кой она мне???? Говорю же — это родительский шаблон и эту секцию переопределяю.
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:13
ты её передал в шаблон?
тогда показывай весь код
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:14
Нет. В мой шаблон не треба переменные
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:14
вместе с тем где ты рендеришь
что у тебя $this->layout или View::make?
slider23
@slider23
Apr 01 2014 15:15
Погоди, что значит "переопределяю" и "расширяю" ?
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:16
Ой. :) Я разобрался. @slider23 — шаблон я расширяю, а секцию — переопределяю.
slider23
@slider23
Apr 01 2014 15:16
@yield юзается в лейауте. туда подставляется контент, который ты описываешь в @section во вьюхах
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:16
вот @slider23 смог объяснить)
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:16
@slider23 , ну давай с тобой про это поговорим :) Правда ведь это одно и тоже? :)
Не согласен
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:16
зря
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:16
Возможно.
slider23
@slider23
Apr 01 2014 15:16
это связанные вещи, но они прямо противоположные
на место yield вставляется section
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:17
Ок. Тогда в форме вопрос-ответ. Можно ли переопределить section?
Не, не разобрался.
slider23
@slider23
Apr 01 2014 15:18
т.е. у тебя во вьюхах две section с одинаковым именем ? не пробовал
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:18
для этого и придуман yield
какой смысл было придумывать yield если он тоже самое делает что и section?
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:19
@slider23 , и оно будет работать. Да не разные это вещи, ёпт, люди.
@vanchelo , удобство записи.
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:19
почему у тебя тогда не работает?
может потому что всё же это разные вещи
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:19
ИМХО. `@yield('section', '')==@section('section')@show`
Нет, у меня не работают другие вещи.
/me на всякий случай запасся пеплом.
slider23
@slider23
Apr 01 2014 15:22
вот есть древовидная структура подключаемых вьюх. линкуется через @extends() в начале вьюх. Та вьюха, которая @extends() в начале не имеет - рутовая, так сказать, верхняя, лейаут.
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:22
Ага
А её как-то можно «наполнять»? View::composer() только?
slider23
@slider23
Apr 01 2014 15:22
yield() говорит, что на его место надо поставить section из нижних вьюх
с данным именем
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:23
И section() говорит тоже самое :)
slider23
@slider23
Apr 01 2014 15:23
разве ? надо перечитать хелп..
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:23
Да там нифига не сказано про это :(
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:24
надо тупо попробовать)
тесты лучше всего могут нам показать истину)
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:24

http://laravel.com/docs/templates#blade-templating

Гляньте секцию sidebar. Может оф. доке вы поверите

Andrey
@andreyelpaev
Apr 01 2014 15:25
привет всем) в чём спор?)
Brezhnev Ivan
@vanchelo
Apr 01 2014 15:25
вижу
так что у тебя не работает?
slider23
@slider23
Apr 01 2014 15:25
а, ну это связка @show - @parent
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:26
@slider23 , блин, да тоже самое и с yield'ом можно
slider23
@slider23
Apr 01 2014 15:26
я такое не юзаю нигде
ну ок, если поставить @show а не @stop, то section будет искать нижестоящие section и подсасывать их, если есть @parent
"тоже самое и с yield'ом можно" - в смысле, @yield() ... @show ?
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:29

Закончим с этим. Подскажите плиз — есть две вьюхи: layout и welcome.

В layout я вывожу структуру меню, текущего пользователя и т.п., в welcome — хочу переоределить одну секцию и всё. Как это кошерно сделать? При этом хочется layout наполнять в каком-нибудь внешнем методе, а не всё это передавать в welcome.

Andrey
@andreyelpaev
Apr 01 2014 15:29
@section('content')
{{ $content }}
@stop
А зачем делать, так? Можно ведь создать разные виды для под динамическую область и рендерить их в функциях контроллера.
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:29
Многого хочу?
slider23
@slider23
Apr 01 2014 15:32
Имхо, лучше для этого blade не юзать, а сделать рендер меню отдельным классом.
Alexander Zhuravlev
@SCIF
Apr 01 2014 15:32
@slider23 , ессно меню рендерится автоматом, но не хочется в каждом экшене его создавать и передавать во вьюху
Так. Я почистил лишнее. http://laravel.io/bin/OWom
Andrey
@andreyelpaev
Apr 01 2014 15:37

layout.blade
@yield('welcome')

welcome.blade
@extends('layout')
@section('welcome')
//вывод меню
@stop

Самый думаю примитивный метод. А вот как его сделать чтобы не передавать во все вьюхи надо подумать)

Alexander Zhuravlev
@SCIF
Apr 01 2014 15:42

Ну то есть фактически уже два вопроса — непонятно почему не работает сейчас и непонятно как сделать правильно и удобно.

@andreyelpaev , меню нужно наполнять в layout.blade, а не в welcome

Как я и говорил выше, наполнять можно через View::composer()
Andrey
@andreyelpaev
Apr 01 2014 15:47
@SCIF можно попробовать без View::composer() разобраться, сейчас попробую
Orel
@2byte
Apr 01 2014 15:48
View :: composer() хорошая штука
Brezhnev Ivan
@vanchelo
Apr 01 2014 16:14
@SCIF так у тебя в layout должно быть не `@stop` а @show
это если следовать официальной доке
Alexander Zhuravlev
@SCIF
Apr 01 2014 16:15
Во. Это кошерно
Brezhnev Ivan
@vanchelo
Apr 01 2014 16:16
потому как я предполагаю что @stop просто рендерит и заканчивает обработку секции
а вообще надо тестить
ты главное скажи работает или нет)
Alexander Zhuravlev
@SCIF
Apr 01 2014 16:17
Работает
Brezhnev Ivan
@vanchelo
Apr 01 2014 16:18
а со стоп не работало?
Alexander Zhuravlev
@SCIF
Apr 01 2014 16:18
Ага
Brezhnev Ivan
@vanchelo
Apr 01 2014 16:18
понял, спс)
Alexander Zhuravlev
@SCIF
Apr 01 2014 16:18
Да это тебе спасибо! Что-то я сам уже не надеялся, что так получится
Теперь главно не забыть эту логику работы ;)
Brezhnev Ivan
@vanchelo
Apr 01 2014 16:19
это хорошо что ты код выложил полностью, так бы могли не раздуплить
Alexander Zhuravlev
@SCIF
Apr 01 2014 16:22
Всем бай и спасибо!
Brezhnev Ivan
@vanchelo
Apr 01 2014 16:22
бай!
Alexey
@Butochnikov
Apr 01 2014 16:53
победа самурая ))) http://vk.com/laravel_rus?w=wall-53758340_2629
Brezhnev Ivan
@vanchelo
Apr 01 2014 17:05
))
Brezhnev Ivan
@vanchelo
Apr 01 2014 19:49
как вы думаете лучше так сделать или обычным синглтоном?
class X {
    protected static $x = 1;

    function __construct() {
        self::$x += 1;
    }

    function getX() {
        return self::$x;
    }
}

function x() {
    static $x;
    if ($x === null) $x = new X;
    return $x;
}
просто класс X это готовая библиотека из packagist, и это не в ларе, DI или SL у меня тоже нет возможности юзать
или еще его завернуть в другой класс синглтон? хотя функцией проще вроде бы)
Brezhnev Ivan
@vanchelo
Apr 01 2014 20:30
@2byte это тебе картинка
Orel
@2byte
Apr 01 2014 20:56
@vanchelo хахаха, улыбнуло ))
Brezhnev Ivan
@vanchelo
Apr 01 2014 20:57
=)