route
/ signedRoute
O assistente de rota permite que você gere URLs para rotas pré-registradas usando seu name
ou a referência controller.method
.
<form
action="{{ route('PostsController.store') }}"
method="POST"
>
</form>
Parâmetros de rota
Você pode passar parâmetros de rota como o segundo argumento. Pode ser uma matriz posicional de valores ou um objeto de par chave-valor. A key
é o nome do parâmetro de rota.
import Route from '@ioc:Adonis/Core/Route'
Route.put('posts/:id', 'PostsController.update')
<form
action="{{ route('PostsController.update', [1]) }}"
method="POST"
>
</form>
Exemplo de parâmetros de rota como um objeto.
<form
action="{{ route('PostsController.update', { id: 1 }) }}"
method="POST"
>
</form>
Opções
O assistente route
também aceita opções adicionais para anexar a sequência de consulta, prefixar uma URL ou procurar uma rota dentro de um domínio específico.
Sequência de consulta
Você pode definir a sequência de consulta como um objeto usando a propriedade qs
.
<form
action="{{
route('PostsController.update', { id: 1 }, {
qs: {
_method: 'PUT' {{-- 👈 --}}
}
})
}}"
method="POST"
>
</form>
Pesquisa dentro de um domínio
Você também pode executar a pesquisa de rota dentro de um domínio específico. Por exemplo:
import Route from '@ioc:Adonis/Core/Route'
Route
.group(() => {
Route.get('/posts/:id', 'PostsController.show')
})
.domain(':tenant.adonisjs.com')
<a href="{{
route('PostsController.show', [1], {
domain: ':tenant.adonisjs.com'
})
}}"> View post </a>
Prefixo de URL
As URLs criadas pelo auxiliar route
são sempre relativas à raiz do domínio. Se necessário, você pode prefixar manualmente uma URL.
<a href="{{
route('PostsController.show', [1], {
domain: ':tenant.adonisjs.com',
prefixUrl: 'https://news.adonisjs.com'
})
}}"> View post </a>
Rotas assinadas
O auxiliar signedRoute
é semelhante ao auxiliar de rota, em vez disso, ele cria uma URL assinada.
Os auxiliares aceitam as seguintes opções adicionais.
{{
signedRoute('OnboardingController.verifyEmail', [user.email], {
expiresIn: '30mins',
purpose: 'verifyEmail'
})
}}