问题描述:
在AdonisJS中使用动态路由时,发现在HTML的标签中使用动态路由变量作为
href
属性时,链接无法正常工作。
解决方法:
在AdonisJS中,使用动态路由需要使用Route.resource()
或Route.get()
等路由方法,并传递相应的控制器和动作。在HTML中,使用路由变量作为标签的
href
属性时,需要使用AdonisJS的路由生成器route()
来生成正确的链接。
以下是解决方法的代码示例:
// start/routes.js
const Route = use('Route')
Route.get('/users/:id', 'UserController.show').as('user.show')
// app/Controllers/Http/UserController.js
class UserController {
async show({ params }) {
const user = await User.find(params.id)
return user
}
}
module.exports = UserController
User Profile
在上面的例子中,{{ route('user.show', { id: user.id }) }}
使用AdonisJS的路由生成器来生成正确的链接。user.id
是动态路由变量,它会被替换为相应的用户ID。
通过使用路由生成器,动态路由链接将能够正常工作,并正确地指向相应的控制器和动作。