【问题标题】:why is my web routes going to api routes? laravel 5.4为什么我的网络路由会转到 api 路由?拉拉维尔 5.4
【发布时间】:2017-10-13 12:46:36
【问题描述】:

所以在我的刀片文件中,我有这些代码来执行 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');
});

这些是我的路线。对于 web,它在 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,有什么想法为什么会发生这种情况?

【问题讨论】:

    标签: laravel api


    【解决方案1】:

    api.php 中的所有路由默认按前缀、中间件和命名空间分组。您不必像现在这样再次添加 api 中间件。

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

    你能运行php artisan route:list 看看会出现什么吗?

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-01
      • 2017-03-16
      • 2018-10-14
      • 2019-09-09
      • 2018-07-09
      • 1970-01-01
      • 2022-10-02
      • 2017-12-05
      • 2013-11-26
      相关资源
      最近更新 更多