我已經在我的應用程序上做了雄辯的工作。 S are被保存得很好。 Buuuut ...我如何使用它來創建漂亮的網址?在laravel 5中使用slugs?
如果可能,我想在我的網址中使用它們而不是ID號碼。
我已經在我的應用程序上做了雄辯的工作。 S are被保存得很好。 Buuuut ...我如何使用它來創建漂亮的網址?在laravel 5中使用slugs?
如果可能,我想在我的網址中使用它們而不是ID號碼。
是的,你可以在你的route
使用slug
和產生url
,例如,如果你聲明的路線是這樣的:
Route::get('users/{username}', '[email protected]')->where('profile', '[a-z]+');
在你的控制器
然後,你可以聲明的方法是這樣的:
public function profile($username)
{
$user = User::where('username', $username)->first();
}
的username
在這裏您蛞蝓和它必須是因爲where()...
在路由聲明的字符串。如果通過integer
,則無法找到route
,並且將拋出404
錯誤。
從Laravel 5.2起,如果使用路徑模型綁定,則可以像往常一樣使您的路由包含對象標識符(隱式綁定)。例如:
在routes/web.php
(Laravel 5.3)或app/Http/routes.php
(Laravel 5.2):
Route::get('categories/{category}', '[email protected]');
在你CategoryController
:
show (Category $category) {
//
}
你需要做的唯一的事情就是告訴Laravel閱讀來自不同列的標識符,例如slug
列,通過在您的雄辯模型中自定義密鑰名稱:
/**
* Get the route key for the model.
*
* @return string
*/
public function getRouteKeyName()
{
return 'slug';
}
現在,您可以引用url
的需要對象標識符slug
標識符而不是id
之一。
基本上所有東西都歸結爲您的路線。你仍然需要創建你的路由,指定段落E.g'Route :: get('/ home/{slug}',function(){});'' – Digitlimit