Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
<?php echo $users->appends(array('sort' => 'votes'))->links(); ?>
Код выше создаст ссылки наподобие http://example.com/something?page=2&sort=votes
а ка сделать ссылки вида, http://example.com/something/2/ ?
и второй вопрос, что будет лучше использовать, шаблонизатор блейд или вот такие вставки пхп? ведь он все равно преобразует его в пхп, зачем вообще эти шаблонизаторы?
Не в сети
если только из-за этого, я бы предпочел на пхп, ради скорости, но так лень...
Но конечно больше меня интересует первый вопрос
Плюс Blade по умолчанию выводит строки экранированными (HTML), что устраняет львиную долю дыр с XSS. Ну, и всякие итераторы и секции добавляют краткости.
По-умолчанию ничего не экранируется. Экранирование - или через три скобки, или с использованием функции "e"
В результате: {{{$value}}} vs. <?=e($value)?>
Не в сети
По теме, возможно поможет - https://github.com/DeSmart/pagination
Ну или расширить самому как удобней.. Текущая страница тут, ссылка создается тут.
Не в сети
Использовать пакет как-то не выходит, попробую расширить...
ага, расширил... единственное, что смог, это изменить вопрасительный знак на слеш, после чего система сломалась и страничный вывод перестал работать) вернул на место, пока потерплю такие урлы и буду учиться. Спасибо большое)
- если только из-за этого, я бы предпочел на пхп, ради скорости, но так лень…
Прирост в скорости нулевой, так как шаблоны компилируются в PHP один раз. Если посмотришь их файлы, увидишь, что там обычный PHP, который бы ты написал сам.
- По-умолчанию ничего не экранируется. Экранирование — или через три скобки, или с использованием функции «e»
Не в сети
ах, ну да, кеширование
Использовать пакет как-то не выходит, попробую расширить...
Пакет под 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)
Не в сети
З.Ы - под расширением я не имел ввиду перезапись файлов ларавеля)) Я имел ввиду расширение его функционала, самостоятельное создание под свои нужды чего-то типа DeSmart/pagination.
Не в сети
/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.
вот такая штука, как бороться?
А какая версия laravel у тебя?
Через "php artisan --version" проверить можно. Я "патч" для 4.2-dev делал)))
Не в сети
блин, у меня 4.1))
Эммм.. Так на 4.1 без патча должно ставиться. Просто версия "desmart/pagination": "1.1.*"
Какую хоть ошибку выдает?
Не в сети
вообще 4.1.23 это и есть патч? были проблемы с переменной $paginator в примере он берется как-будто из ядра, у меня писало, что такой переменной не существует
А ёмое... Дык это пример вывода ссылок "вручную" через цикл.. А так:
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() }}
===
Не в сети
Блин... это... Мне нужно было только поставить покет и добавить два метода к пагинатору, капец.... Спасибо большое) все работает,, все круто))
Страницы 1