最终路线URL更改Laravel 5.5

时间:2017-10-23 05:16:30

标签: php laravel routes laravel-5.5

我正在做一个学校项目。在学校详细信息页面上工作时,我遇到了URL问题。我的客户需要一个干净的网址来运行AdWords。我的学校详细信息页面网址:http://edlooker.com/schools/detail/4/Shiksha-Juniors-Ganapathy。但他需要它像http://edlooker.com/Shiksha-Juniors-Ganapathy。如果有人帮助我,这将有所帮助,提前谢谢。

3 个答案:

答案 0 :(得分:1)

您需要在web.php(如果是laravel 5.x)或routes.php(如果它是laravel 4.2)中的所有路径之后定义此路线。

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

你的控制器应该有这样的getIndex方法,

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.
}

这样,你不需要使用数据库来获取基于URL段的URL,你可以直接检查数据库中的学校名称,并从DB中获取数据后,你可以将它传递给学校细节视图。它将满足您的目的。

答案 1 :(得分:1)

查看文档中的Route Model Binding部分。

  

自定义键名

     

如果您希望模型绑定在检索给定模型类时使用除id之外的数据库列,则可以覆盖Eloquent模型上的getRouteKeyName方法:

/**
 * Get the route key for the model.
 *
 * @return string
 */
public function getRouteKeyName()
{
    return 'slug';
}

答案 2 :(得分:0)

在这种情况下,您必须为所有请求使用一个前端控制器并按slugs获取数据,例如:

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

您的路线可能如下所示:

Route::get('{slug}', 'FrontController@show');