Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
функция
static function dynamic_routings() {
$array = array(array('classname' => 'BackendController', 'url' => 'backend'));
foreach ($array as $r) {
if (Cache::has('dynamic_route_'.$r['classname']) && Cache::has('dynamic_route_'.$r['classname'].'_size')
&& Cache::get('dynamic_route_'.$r['classname'].'_size') == filesize(__DIR__.'/controllers/'.$r['classname'].'.php')) { // -- роутеры из кэша --
foreach (Cache::get('dynamic_route_'.$r['classname']) as $method) Route::any($r['url'].'/'.preg_replace('/_/', '/', $method), array('uses' => $r['classname'].'@____'.$method));
} else {
if (Cache::has('dynamic_route_'.$r['classname'])) Cache::forget('dynamic_route_'.$r['classname']);
if (Cache::has('dynamic_route_'.$r['classname'].'_size')) Cache::forget('dynamic_route_'.$r['classname'].'_size');
Cache::forever('dynamic_route_'.$r['classname'].'_size', filesize(__DIR__.'/controllers/'.$r['classname'].'.php'));
$routers = null;
foreach (get_class_methods($r['classname']) as $method) {
if (mb_substr($method, 0, 4) == '____' && mb_strstr(mb_substr($method, 4), '_')) {
$routers[] = mb_substr($method, 4);
Route::any($r['url'].'/'.preg_replace('/_/', '/', mb_substr($method, 4)), array('uses' => $r['classname'].'@'.$method));
}
}
if ($routers) Cache::forever('dynamic_route_'.$r['classname'], $routers); // -- запись роутеров в кэш --
}
}
}
вызов перед маршрутом restful контроллера
func::dynamic_routings();
Спасибо, сделал как Вы посоветовали.
Это понятно, но хотелось бы, чтобы не нужно было вверху определения роутинга контроллера писать всякий раз роутинг для таких случаев. А если их будет 200?
Добрый день.
Просьба помочь в поиске решения:
Если прописать роутинг контроллера
Route::controller('backend', 'BackendController');
то урл функций вида getSecurityUser будет /backend/security-users.
Хочется чтобы урл был вида /backend/security/users.
Как этого добиться?
Уверен есть решения как с mod_rewrite, так и без него.
Страницы 1