/**
* @return array
*/
public function rules(){
return [
'slug' => 'required|exists:articles,slug',
];
}
/**
* Add parameters to be validated
*
* @return array
*/
public function all(){
return array_replace_recursive(
parent::all(),
$this->route()->parameters()
);
}
Route::bind('article_slug', function ($slug) {
return Article::published()->whereSlug($slug)->firstOrFail();
});
Route::get('articles/{article_slug}', 'ArticleController@show');
class ArticleController extends Controller{
public function show(Article $article){
return view('article.show', compact('article'));
}
}