webman的URL问题

0

web的模板页面里的url,如果路由做了改变,所有页面都要手动去修改吗?
有没有办法路由做了改变,页面上的相应URL也随之改变.


还有,有办法让用户只能通过设置的路由规则访问,无法原始路径吗?

已邀请:

walkor

赞同来自:

更新webman-framework 到 1.0.10 或者后续更高版本。
composer require workerman/webman-framework ^1.0.10
路由定义时利用name()方法给路由设置个名字。
例如config/route.php


Route::any('/blog/{id}', 'app\controller\Blog@read')->name('blog');

然后自己封装个函数app\functions.php


function _url_($name, $parameters = [])
{
$route = Route::getByName($name);
if (!$route) {
return '';
}
return $route->url($parameters);
}

在模板里调用函数


_url_('blog', ['id' => 100]);

就可以得到实际的路由url了,结果为 /blog/100


如果不想让访问原始路径,就设置下对应控制器的路由返回404,例如下面的是不允许访问blog控制器。


Route::any('/blog[/{action}]', function () {return response('404 Not Found', 404);});

要回复问题请先登录注册