Anuncio

Entra a participar en el Slack de Laraveles. Solicita tu invitación aquí.
Nos ayuda a manter la comunidad

#1 26/05/2017 11:13:16

Mark182
Miembro
Registrado: 08/08/2014
Mensajes: 87

Se puede hacer esto con las Routes

Hola como estan laravelos?

Tengo un problema, tengo dos routes, una que dirige a la vista de un producto y otra que dirige al formulario para agregar un nuevo producto:

Route::get('/{slug}', [
        'as' => 'product',
        'uses' => 'ProductoController@show'
]);

Route::get('/add', [
	'as' => 'add-product',
	'uses' => 'ProductoController@add'
]);

Mi problema es que, cuando quiero ir a '/add', me envia al controlador 'ProductoController@show' y toma la palabra "add" como un parametro slug.
Como puedo hacer para que no sea asi?


Muchas gracias.

Desconectado

#2 26/05/2017 11:42:22

nachoDLC
Miembro
Localidad: México
Registrado: 20/11/2014
Mensajes: 161

Re: Se puede hacer esto con las Routes

Pon primero la declaración de add.

Debes decirle que primero existen constantes y debe responder a ellas, en caso de que el valor no se encuentre declarado como constante, entonces llegará a "show".

*También recuerda validar los valores (url) de esas constantes, alguien podría agregar algo con nombre add y nunca va a mostrar su info.

Desconectado

#3 26/05/2017 22:43:48

atxy2k
Miembro
Registrado: 23/08/2014
Mensajes: 31

Re: Se puede hacer esto con las Routes

Tuve el mismo problema, tu problema esta en que ésta ruta....

Route::get('/{slug}', [
        'as' => 'product',
        'uses' => 'ProductoController@show'
]);

Acá tu estas definiendo que dentro de tu raiz, podran llegar cualquier texto, y tu lo nombraras "slug", entonces cuando tu escribes /add  ésta ruta transforma la palabra "add" en un slug, y tu segunda ruta, queda inhabilitada, lo que debes hacer es sustituir esa ruta que te está causando conflicto, con algo como:

Route::get('/single/{slug}', [
        'as' => 'product',
        'uses' => 'ProductoController@show'
]);

Con ésto solucionas tu problema.

Desconectado

#4 02/06/2017 11:42:04

Mark182
Miembro
Registrado: 08/08/2014
Mensajes: 87

Re: Se puede hacer esto con las Routes

nachoDLC escribió:

Pon primero la declaración de add.

Debes decirle que primero existen constantes y debe responder a ellas, en caso de que el valor no se encuentre declarado como constante, entonces llegará a "show".

*También recuerda validar los valores (url) de esas constantes, alguien podría agregar algo con nombre add y nunca va a mostrar su info.


Como definis constantes en el Route?

Desconectado

#5 02/06/2017 11:46:05

nachoDLC
Miembro
Localidad: México
Registrado: 20/11/2014
Mensajes: 161

Re: Se puede hacer esto con las Routes

Mark182 escribió:
nachoDLC escribió:

Pon primero la declaración de add.

Debes decirle que primero existen constantes y debe responder a ellas, en caso de que el valor no se encuentre declarado como constante, entonces llegará a "show".

*También recuerda validar los valores (url) de esas constantes, alguien podría agregar algo con nombre add y nunca va a mostrar su info.


Como definis constantes en el Route?

Me refiero a las url fijas, que no cambian. Como pones add para una ruta y {slug} para otra, de modo que "add" sería constante y {slug} cualquier otra palabra que no sea add.

Hay que declarar primero las rutas fijas para que el sistema filtre esa url en caso de que sea llamada, y si no encuentra una, entonces llame al método de la variable "{slug}"

Última edición por nachoDLC (02/06/2017 11:55:06)

Desconectado

#6 02/06/2017 17:48:12

Mark182
Miembro
Registrado: 08/08/2014
Mensajes: 87

Re: Se puede hacer esto con las Routes

nachoDLC escribió:
Mark182 escribió:
nachoDLC escribió:

Pon primero la declaración de add.

Debes decirle que primero existen constantes y debe responder a ellas, en caso de que el valor no se encuentre declarado como constante, entonces llegará a "show".

*También recuerda validar los valores (url) de esas constantes, alguien podría agregar algo con nombre add y nunca va a mostrar su info.


Como definis constantes en el Route?

Me refiero a las url fijas, que no cambian. Como pones add para una ruta y {slug} para otra, de modo que "add" sería constante y {slug} cualquier otra palabra que no sea add.

Hay que declarar primero las rutas fijas para que el sistema filtre esa url en caso de que sea llamada, y si no encuentra una, entonces llame al método de la variable "{slug}"


Entendido! Muchas gracias.

Desconectado

Pié de página <- REVISAR ->

Powered by FluxBB

Ayuda a mantener la comunidad: