Laravel: 为子项创建路由资源
Laravel: Creating route resource for sub items
你好,我是 laravel 的新手,我想创建一个嵌套系统
这是我的梦想mmmm
我的web.php
Route::resource('survey','XX\Survey\SurveyController')->except([
'show'
]);
这很好用,但我想要在该页面上创建的项目中有一个页面
Route::resource('survey/{survey_id}','XX\Survey\SurveyQuestionController');
这是我想要的路线;
abc.com/survey/ // <== 这是调查列表页面;我们可以在页面中列出项目、创建项目、编辑项目、删除项目和
abc.com/survey/survey_id // <== 这是调查页面,该页面将包含调查问题。我们可以在页面
中列出项目、创建项目、编辑项目、删除项目
这是我的错误截图:
然后使用路由组,因为它允许您在大量路由之间共享路由属性,例如中间件,而无需在每个单独的路由上定义这些属性。
https://laravel.com/docs/8.x/routing#route-groups
你试过这样的东西吗?
Route::resource('/survey/{survey}/survey_questions', 'XX\Survey\SurveyQuestionController');
这将创建以下路线
- 索引:获取abc.com/survey/1/survey_questions
- 创建:GET abc.com/survey/1/survey_questions/创建
- 商店:POSTabc.com/survey/1/survey_questions
- 显示:获取abc.com/survey/1/survey_questions/1
- 编辑:获取 abc.com/survey/1/survey_questions/1/编辑
- 更新:PUT abc.com/survey/1/survey_questions/1
- 摧毁:DEL abc.com/survey/1/survey_questions/1
如果需要,您可以传递一些额外的参数来格式化 url 和命名路由
Route::resource('/survey/{survey}/questions', 'XX\Survey\SurveyQuestionController', [
'as' => 'survey',
'parameters' => ['questions' => 'surveyQuestion']
]);
这样你的路线将是
- 索引:获取 abc.com/survey/1/questions -> survey.questions.index
- 创建:获取 abc.com/survey/1/questions/创建 -> survey.questions.create
- 商店:POST abc.com/survey/1/questions -> survey.questions.store
- 显示:获取 abc.com/survey/1/questions/1 -> survey.questions.show
- 编辑:GET abc.com/survey/1/questions/1/edit -> survey.questions.edit
- 更新:PUT abc.com/survey/1/questions/1 -> survey.questions.update
- 摧毁:DEL abc.com/survey/1/questions/1 -> survey.questions.destroy
你好,我是 laravel 的新手,我想创建一个嵌套系统
这是我的梦想mmmm
我的web.php
Route::resource('survey','XX\Survey\SurveyController')->except([
'show'
]);
这很好用,但我想要在该页面上创建的项目中有一个页面
Route::resource('survey/{survey_id}','XX\Survey\SurveyQuestionController');
这是我想要的路线;
abc.com/survey/ // <== 这是调查列表页面;我们可以在页面中列出项目、创建项目、编辑项目、删除项目和
abc.com/survey/survey_id // <== 这是调查页面,该页面将包含调查问题。我们可以在页面
中列出项目、创建项目、编辑项目、删除项目这是我的错误截图:
然后使用路由组,因为它允许您在大量路由之间共享路由属性,例如中间件,而无需在每个单独的路由上定义这些属性。 https://laravel.com/docs/8.x/routing#route-groups
你试过这样的东西吗?
Route::resource('/survey/{survey}/survey_questions', 'XX\Survey\SurveyQuestionController');
这将创建以下路线
- 索引:获取abc.com/survey/1/survey_questions
- 创建:GET abc.com/survey/1/survey_questions/创建
- 商店:POSTabc.com/survey/1/survey_questions
- 显示:获取abc.com/survey/1/survey_questions/1
- 编辑:获取 abc.com/survey/1/survey_questions/1/编辑
- 更新:PUT abc.com/survey/1/survey_questions/1
- 摧毁:DEL abc.com/survey/1/survey_questions/1
如果需要,您可以传递一些额外的参数来格式化 url 和命名路由
Route::resource('/survey/{survey}/questions', 'XX\Survey\SurveyQuestionController', [
'as' => 'survey',
'parameters' => ['questions' => 'surveyQuestion']
]);
这样你的路线将是
- 索引:获取 abc.com/survey/1/questions -> survey.questions.index
- 创建:获取 abc.com/survey/1/questions/创建 -> survey.questions.create
- 商店:POST abc.com/survey/1/questions -> survey.questions.store
- 显示:获取 abc.com/survey/1/questions/1 -> survey.questions.show
- 编辑:GET abc.com/survey/1/questions/1/edit -> survey.questions.edit
- 更新:PUT abc.com/survey/1/questions/1 -> survey.questions.update
- 摧毁:DEL abc.com/survey/1/questions/1 -> survey.questions.destroy