Estoy trabajando en un proyecto escolar. mientras trabajo en la página de detalles de una escuela, tengo un problema con la URL. Mi cliente necesita una URL limpia para ejecutar AdWords. URL de la página de detalles de mi escuela: http://edlooker.com/schools/detail/ 4 / Shiksha-Juniors-Ganapathy. Pero lo necesita como http://edlooker.com/Shiksha-Juniors-Ganapathy. Si alguien me ayuda, será útil, gracias de antemano.

0
vignesh pbs 23 oct. 2017 a las 08:16

3 respuestas

La mejor respuesta

En este caso, deberá usar un controlador frontal para todas las solicitudes y obtener datos por babosas, por ejemplo:

public function show($slug)
{
     $page = Page::where('slug', $slug)->first();
     ....
}

Su ruta podría verse así:

Route::get('{slug}', 'FrontController@show');
0
Alexey Mezenin 23 oct. 2017 a las 06:10

Consulte la sección Ruta del modelo de enlace en los documentos.

Personalizar el nombre clave

Si desea que el enlace de modelo use una columna de base de datos que no sea id al recuperar una clase de modelo dada, puede anular el método getRouteKeyName en el modelo Eloquent:

/**
 * Get the route key for the model.
 *
 * @return string
 */
public function getRouteKeyName()
{
    return 'slug';
}
1
Tpojka 23 oct. 2017 a las 12:26

Debe definir esta ruta después de todas las rutas en su web.php (si es laravel 5.x) o en routes.php (si es laravel 4.2).

Route::get('{school}','YourController@getIndex');

Y su controlador debería tener un método getIndex como este,

public function getIndex($school_name)
{
  print_r($school_name);die;  // This is just to print on page,
  //otherwise you can write your logic or code to fetch school data and pass the data array to view from here.
}

De esta manera, no necesita usar la base de datos para obtener la URL basada en el segmento de URL y puede verificar directamente el nombre de la escuela en la base de datos y, después de obtener los datos de DB, puede pasarlos a la vista de detalles de la escuela. Y servirá a su propósito.

1
Himanshu Upadhyay 23 oct. 2017 a las 07:29