如何在laravel 8中传递带有(路由)的slug参数



如何在Laravel 8中写这篇文章?请帮忙。

Route::get('blog/{slug}',
[
'as' => 'blog.single',
'uses'=>'BlogController@'getSingle'
]
);
  1. 我的控制器
class BlogController extends Controller
{

public function getSingle($slug) {

return $slug;
}
}

最简单的方法是:

class BlogPost extends Model
{
public function getRouteKeyName()
{
return 'slug';
}
}

然后

public function getSingle(AppModelBlogPost $post) {

return $post;
}
Route::get('blog/{post}', [BlogController::class, 'getSingle']);

或者,您也可以使用:

Route::get('blog/{post:slug}', [BlogController::class, 'getSingle']);

第二个参数是用于查找帖子的属性的名称,则不需要设置getRouteKeyName

最新更新