Laravel по-русски

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

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

#1 04.12.2013 12:00:36

dx

get all routes

Вопрос в чем, как взять все ззарегистрированные в системе роуты?
знаю про Route::getRoutes(), но в моем случае он не работает почему-то. Сделано всё так, сделал некий класс, назовем его MyClass в неймспейсе Test. и когда я вызываю Route::getRoutes() там пусто. Хотя когда проделываю это в контроллере, то всё норм. Как решить проблему?

#2 04.12.2013 14:59:04

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: get all routes

Думаю разберетсь

PHP
<table>
    <tr>
        <th></th>
        <th>Path</th>
        <th>Route</th>
        <th>Uses</th>
        <th>Before</th>
        <th>After</th>
    </tr>
    <?php $routes Route::getRoutes(); ?>
    @foreach($routes as $name => $route)
        @if ( Route::currentRouteName() == $name)
        <tr class="highlight">
        @else
        <tr>
        @endif
            <td>[{{ array_get($route->getMethods(), 0) }}]</td>
            <td>{{ $route->getPath() }}</td>
            <td>{{ $name }}</td>
            <td>{{ $route->getAction() ?: 'Closure' }}</td>
            <td>{{ implode('|', $route->getBeforeFilters()) }}</td>
            <td>{{ implode('|', $route->getAfterFilters()) }}</td>
        </tr>
    @endforeach
</table>

Не в сети

#3 04.12.2013 17:36:41

dx

Re: get all routes

2Cheshirrski
Если бы внимательно читали, там написано что я юзал Route::getRoutes(), который возвращал пустоту.
Проблема была в том, что работа с классом проходила в global.php, а процесс инициализации приложения в ларавеле такой что роута собираются после глобала, следовательно надо было менять немного логику.

#4 04.12.2013 19:22:44

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: get all routes

Route::getRoutes() не возвращает пустоту, просто вы его «не правильно готовили», я привел общий пример, «для понимания», т.к не могу знать что именно вам нужно.

Не в сети

#5 05.12.2013 09:59:13

dx

Re: get all routes

2Cheshirrski
При определенном условии он вернет пустоту, точнее у этого объекта будет два свойства которые будут пустые. А именно из-за того, что манипулции с роутами я пытался делать в global.php, а в global роутов еще нет, ибо они инициализируются после глобала. Вот и вся история. Я так понимаю это сделано из-за того, что в global подключатся фильтры, для роутов.

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