Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 05.03.2014 22:48:59

ksedim

[L4] Страничный вывод

<?php echo $users->appends(array('sort' => 'votes'))->links(); ?>
Код выше создаст ссылки наподобие http://example.com/something?page=2&sort=votes
а ка сделать ссылки вида, http://example.com/something/2/ ?
и второй вопрос, что будет лучше  использовать, шаблонизатор блейд или вот такие вставки пхп? ведь он все равно преобразует его в пхп, зачем вообще эти шаблонизаторы?

#2 05.03.2014 23:07:11

Re: [L4] Страничный вывод

  1. ведь он все равно преобразует его в пхп, зачем вообще эти шаблонизаторы?

Намного короче написать {{ код }}, чем <?php echo код?>. Плюс Blade по умолчанию выводит строки экранированными (HTML), что устраняет львиную долю дыр с XSS. Ну, и всякие итераторы и секции добавляют краткости.

Не в сети

#3 05.03.2014 23:21:42

ksedim

Re: [L4] Страничный вывод

если только из-за этого, я бы предпочел на пхп, ради скорости, но так лень...

#4 05.03.2014 23:42:50

ksedim

Re: [L4] Страничный вывод

Но конечно больше меня интересует первый вопрос

#5 06.03.2014 12:33:54

Re: [L4] Страничный вывод

Proger_XP пишет:

Плюс Blade по умолчанию выводит строки экранированными (HTML), что устраняет львиную долю дыр с XSS. Ну, и всякие итераторы и секции добавляют краткости.

По-умолчанию ничего не экранируется. Экранирование - или через три скобки, или с использованием функции "e"

В результате: {{{$value}}} vs. <?=e($value)?>

Не в сети

#6 06.03.2014 12:50:39

Re: [L4] Страничный вывод

По теме, возможно поможет - https://github.com/DeSmart/pagination

Ну или расширить самому как удобней.. Текущая страница тут, ссылка создается тут.

Не в сети

#7 06.03.2014 13:44:03

ksedim

Re: [L4] Страничный вывод

Использовать пакет как-то не выходит, попробую расширить...

#8 06.03.2014 14:01:25

ksedim

Re: [L4] Страничный вывод

ага, расширил... единственное, что смог, это изменить вопрасительный знак на слеш, после чего система сломалась и страничный вывод перестал работать) вернул на место, пока потерплю такие урлы и буду учиться. Спасибо большое)

#9 06.03.2014 14:04:25

Re: [L4] Страничный вывод

  1. если только из-за этого, я бы предпочел на пхп, ради скорости, но так лень…

Прирост в скорости нулевой, так как шаблоны компилируются в PHP один раз. Если посмотришь их файлы, увидишь, что там обычный PHP, который бы ты написал сам.

  1. По-умолчанию ничего не экранируется. Экранирование — или через три скобки, или с использованием функции «e»

Да, я ошибся. Перепутал с Handlebars.

Не в сети

#10 06.03.2014 15:45:17

ksedim

Re: [L4] Страничный вывод

ах, ну да, кеширование

#11 06.03.2014 16:19:45

Re: [L4] Страничный вывод

ksedim пишет:

Использовать пакет как-то не выходит, попробую расширить...

Пакет под 4.1, под 4.2 не работает..

Можно перелопатить как-то так - https://github.com/nostalgie/pagination/tree/patch

В composer.json

    "repositories": [{
        "type": "vcs",
        "url": "https://github.com/nostalgie/pagination"
    }],

    "require": {
        "desmart/pagination": "dev-patch"
    },

а дальше как в readme.. вроде работает..

Изменено Crys (06.03.2014 16:20:40)

Не в сети

#12 06.03.2014 16:26:22

Re: [L4] Страничный вывод

З.Ы - под расширением я не имел ввиду перезапись файлов ларавеля)) Я имел ввиду расширение его функционала, самостоятельное создание под свои нужды чего-то типа DeSmart/pagination.

Не в сети

#13 06.03.2014 18:12:24

ksedim

Re: [L4] Страничный вывод

/f/xampp/htdocs/laravel
$ composer update desmart/pagination
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for desmart/pagination dev-patch -> satisfiable by de
smart/pagination[dev-patch].
    - desmart/pagination dev-patch requires illuminate/support dev-master -> no
matching package found.

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your min
imum-stability setting
   see <https://groups.google.com/d/topic/compo … discussion> f
or more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common
problems.

вот такая штука, как бороться?

#14 07.03.2014 12:23:41

Re: [L4] Страничный вывод

А какая версия laravel у тебя?

Через "php artisan --version" проверить можно. Я "патч" для 4.2-dev делал)))

Не в сети

#15 07.03.2014 13:27:20

ksedim

Re: [L4] Страничный вывод

блин, у меня 4.1))

#16 07.03.2014 13:39:17

Re: [L4] Страничный вывод

Эммм.. Так на 4.1 без патча должно ставиться. Просто версия "desmart/pagination": "1.1.*"
Какую хоть ошибку выдает?

Не в сети

#17 07.03.2014 14:15:50

ksedim

Re: [L4] Страничный вывод

вообще 4.1.23 это и есть патч? были проблемы с переменной $paginator в примере он берется как-будто из ядра, у меня писало, что такой переменной не существует

#18 07.03.2014 17:29:33

Re: [L4] Страничный вывод

А ёмое... Дык это пример вывода ссылок "вручную" через цикл.. А так:

1) Делаешь стандартно как в обычной постраничке
2) Если работает постраничка - ставишь пакет как написано в ридми
3) В роутах делаешь как-то типа Route::get('test/{page?}', 'TestController@testAction');
4) В экшене как-то так
===
$list = Product::paginate(10)
  ->useCurrentRoute()
  ->pagesProximity(3);

// тут уже можешь проверять $list->links()

return \Response::view('template', array('list' => $list));
===
5) В шаблоне так

===
{{ $list->links() }}
===

Не в сети

#19 07.03.2014 18:05:56

ksedim

Re: [L4] Страничный вывод

Блин... это... Мне нужно было только поставить покет и добавить два метода к пагинатору, капец.... Спасибо большое) все работает,, все круто))

Подвал раздела