Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Вопрос в чем, как взять все ззарегистрированные в системе роуты?
знаю про Route::getRoutes(), но в моем случае он не работает почему-то. Сделано всё так, сделал некий класс, назовем его MyClass в неймспейсе Test. и когда я вызываю Route::getRoutes() там пусто. Хотя когда проделываю это в контроллере, то всё норм. Как решить проблему?
<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>
Не в сети
2Cheshirrski
Если бы внимательно читали, там написано что я юзал Route::getRoutes(), который возвращал пустоту.
Проблема была в том, что работа с классом проходила в global.php, а процесс инициализации приложения в ларавеле такой что роута собираются после глобала, следовательно надо было менять немного логику.
Не в сети
2Cheshirrski
При определенном условии он вернет пустоту, точнее у этого объекта будет два свойства которые будут пустые. А именно из-за того, что манипулции с роутами я пытался делать в global.php, а в global роутов еще нет, ибо они инициализируются после глобала. Вот и вся история. Я так понимаю это сделано из-за того, что в global подключатся фильтры, для роутов.
Страницы 1