为什么我的网络路线会进入api路线? laravel 5.4

时间:2017-05-14 18:36:15

标签: laravel api

所以在我的刀片文件中我有这些代码来做CRUD,

    <form method="POST" class="form-horizontal" action="{{ url('tickets/'.$ticket->id) }}"
                  enctype="multipart/form-data">
                     {!! csrf_field() !!}
                     <input type="hidden" name="_method" value="PATCH" />

所以我创建了我的api路线。代码如下。 (路径/ api.php)

Route::group(['middleware' => ['api']], function () {
    Route::resource('/v1/tickets','Api\TicketsController');
});
这些是我的路线。对于网络,它在routes.php中,因为我从包中获得它。

Route::resource($main_route_path, 'App\Http\Controllers\TicketsController', [
            'names' => [
                'index'   => $main_route.'.index',
                'store'   => $main_route.'.store',
                'create'  => $main_route.'.create',
                'update'  => $main_route.'.update',
                'show'    => $main_route.'.show',
                'destroy' => $main_route.'.destroy',
                'edit'    => $main_route.'.edit',
            ],
            'parameters' => [
                $field_name => 'ticket',
            ],
        ]);

现在,问题是,每当我使用表单请求单击按钮时,整个操作都会转到api,任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

默认情况下,api.php中的所有路由都与前缀,中间件和命名空间组合在一起。您不必像以前那样再次添加api中间件。

对于Web路由,您可以使用 TicketsController ,因为命名空间已经指向Controllers文件夹。

您可以运行php artisan route:list并查看显示的内容吗?

您也可以这样做来更改所有资源路由的名称前缀。

Route::resource($main_route_path, 'TicketsController', [
    'names' => $main_route,
    'parameters' => [
        $field_name => 'ticket',
    ],
]);