如何从嵌套资源触发index
方法?例如,我有路由:
Route::resource('diagrams.steps', 'DiagramStepsController');
我允许像 /diagrams/1/steps/3
这样的 URL 触发show($diagramId, $stepID)
.我想获取属于ID 为 1:/diagrams/1/steps
的图表的所有步骤。
我如何实现这一目标?
您发布的路由定义:
Route::resource('diagrams.steps', 'DiagramStepsController');
应生成以下路由:
+--------+-------------------------------------------------+------------------------+--------------------------------+----------------+---------------+
| Domain | URI | Name | Action | Before Filters | After Filters |
+--------+-------------------------------------------------+------------------------+--------------------------------+----------------+---------------+
| | GET|HEAD diagrams/{diagrams}/steps | diagrams.steps.index | DiagramStepsController@index | | |
| | GET|HEAD diagrams/{diagrams}/steps/create | diagrams.steps.create | DiagramStepsController@create | | |
| | POST diagrams/{diagrams}/steps | diagrams.steps.store | DiagramStepsController@store | | |
| | GET|HEAD diagrams/{diagrams}/steps/{steps} | diagrams.steps.show | DiagramStepsController@show | | |
| | GET|HEAD diagrams/{diagrams}/steps/{steps}/edit | diagrams.steps.edit | DiagramStepsController@edit | | |
| | PUT diagrams/{diagrams}/steps/{steps} | diagrams.steps.update | DiagramStepsController@update | | |
| | PATCH diagrams/{diagrams}/steps/{steps} | | DiagramStepsController@update | | |
| | DELETE diagrams/{diagrams}/steps/{steps} | diagrams.steps.destroy | DiagramStepsController@destroy | | |
+--------+-------------------------------------------------+------------------------+--------------------------------+----------------+---------------+
请注意,第一个路由是 diagrams/{diagrams}/steps
它调用控制器的 index
方法,这就是你所要求的。
Route::resource('diagrams.steps', 'DiagramStepsController');
给我 GET|头图/{图}/步骤路线。它调用带有参数匹配图表 id 的索引方法:{diagrams}。因此,为了获得属于导航图的所有步骤,我必须编写如下方法:
public function index($id)
{
$steps = Step::where('diagram_id', '=', $id)->get();
return Response::json(
array(
'error' => false,
'steps' => $steps
),
200
);
}