gpt4 book ai didi

php - 如何将 slug 和 ID URL 添加到 Laravel 4 Route?

转载 作者:可可西里 更新时间:2023-11-01 13:40:04 25 4
gpt4 key购买 nike

我想将漂亮的 Slug URL 添加到我的 Laravbel 项目中。我目前使用的是身份证号码。

我的目标是继续使用 Numbers,但也使用 Slugs 来获得更好的 SEO URL。因此,Slug 或 ID 将加载正确的页面。

下面是我当前使用 ID 号加载记录的 Route

// View Campaign Details/Profile/Map View
Route::any("/campaign/{id}", array(
"as" => "campaign/{id}",
"uses" => "CampaignController@getCampaignMap"
));

为了能够在 Laravel 4 中添加 Slug 支持。我认为我需要在我的事件表中添加一个 slug 数据库列。

我将如何编辑我的路线以使用 slug 字符串的 ID 号?

此外,由于我只想在我的应用程序的几个部分使用 slug,我将如何为此使用 my.htaccess,或者甚至需要 an.htaccess?

最佳答案

我不会将两个参数传递给您的函数,在这两种情况下都将其视为一个 ID。如果您还没有,则需要向数据库添加一个“slug”列,并确保这些值像 id 一样是唯一的。然后在你的 Controller 中你可以做这样的事情:

public function getCampaignMap($id){
//look for the campaign by id first
$campaignmap = Campaign::find($id);
//if none is found try to find it by slug instead
if(!$campaignmap){
$campaignmap = Campaign::where('slug','=',$id)->firstOrFail();
}
return View::make('campaignmap.show', compact('campaignmap'));
}

在某些情况下,您还可以通过检查 id 是否为数字来保存自己的查询,然后如果它不是数字则通过 slug 查找它,例如:

public function getCampaignMap($id){
//look for the campaign by id if it's numeric and by slug if not
if(is_numeric($id)){
$campaignmap = Campaign::find($id);
}else{
$campaignmap = Campaign::where('slug','=',$id)->firstOrFail();
}
return View::make('campaignmap.show', compact('campaignmap'));
}

关于php - 如何将 slug 和 ID URL 添加到 Laravel 4 Route?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21949298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com