Laravel по-русски

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

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

#1 29.06.2012 15:47:13

Папка с шаблонами

Всем привет!
После долгих раздумий решил перейти с Codeigniter на laravel.

Возникли пару вопросов:
- как указать путь к другой папке с шаблонами. К примеру сейчас view а надо templates/first_template (к примеру)
- как доставать инфу из URL к примеру в Codeigniter была функция

$this->uri->request(номер URL)

- для чего пишут в routes.php

Route::controller('account');

ведь он потом все равно не доступен, пока в автозагрузку не добавишь.

Не в сети

#2 29.06.2012 16:06:53

Re: Папка с шаблонами

  1. как указать путь к другой папке с шаблонами?

Laravel использует 2 события для работы с шаблонами: View::loader для получения имени файла и View::engine для форматирования в HTML. Кроме этого, при создании View::__construct() принимает или имя шаблона, которое преобразуется в имя файла с помощью первого события, или абсолютный путь (для этого надо передать «path: XXX»).

Если тебе нужно в отдельных местах использовать абсолютные пути — используй path:; если же хочешь в рамках всего проекта поменять путь — измени обработчик события в app/start.php:

PHP
Event::listen(View::loader, function($bundle$view)
{
    return 
View::file($bundle$viewBundle::path($bundle).'views');
});

Здесь «views» — то самое имя папки с шаблонами. Учти, что при этом ты изменишь пути шаблонов не только для тех, что лежат в application/, но и для пакетов, что вряд ли требуется.

  1. URL

Вся работа с адресами делается через классы URI и URL, см. доку или их исходники, благо они легко читаются.

  1. PHPRoute::controller('account');

Ты что-то путаешь, он доступен моментально, так как это не пакет.

Не в сети

#3 29.06.2012 16:38:43

Re: Папка с шаблонами

Вот эти "пацики" http://clip2net.com/s/24N2w не доступны пока не пропишешь их сюда http://clip2net.com/s/24N39

По поводу пакетов, может есть пример под рукой?

Не в сети

#4 29.06.2012 19:23:18

Re: Папка с шаблонами

Как ты их регистрируешь? Скорее всего забыл про точку вместо подчёркивания:

PHP
Route::controller('backend.base');
Route::controller('frontend.base');

Не в сети

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