在Laravel中的控制器中创建一个到自定义函数的路由。

15 浏览
0 Comments

在Laravel中的控制器中创建一个到自定义函数的路由。

我仍然不明白为什么我不能将我的刀片指向我在控制器中创建的自定义函数。我创建了一个路由,如下所示:\n

Route::get('/orders/storeInitialItems', 'OrdersController@storeInitialItems')->name('orders.storeInitialItems');

\n在我的控制器中,我有这个:\n

public function storeInitialItems()
{
    return view('orders.storeInitialItems');
}

\n但是当我运行页面storeInitialItems.blade.php时,错误似乎调用了我的控制器的show()函数。\n为什么会发生这种情况?\n更新\n订单的完整路由\n

Route::get('/orders','OrdersController@index')->name('orders.index');
Route::get('/orders/create', 'OrdersController@create')->name('orders.create');
Route::post('/orders', 'OrdersController@store')->name('orders.store');
Route::get('/orders/{order}/edit', 'OrdersController@edit')->name('orders.edit');
Route::post('/orders/{order}', 'OrdersController@update')->name('orders.update');
Route::delete('/orders/{order}', 'OrdersController@destroy')->name('orders.delete');
Route::resource('orders', 'OrdersController');
Route::put('orders/{order}/pub', 'OrdersController@publish')->name('orders.publish');
Route::put('orders/{order}/cancel', 'OrdersController@cancel')->name('orders.cancel');
Route::put('orders/{order}/delivered', 'OrdersController@delivered')->name('orders.delivered');
Route::get('/orders/storeInitialItems', 'OrdersController@storeInitialItems')->name('orders.storeInitialItems');
Route::get('/orders/{order}/delivery', 'OrdersController@viewdeliveryItems')->name('orders.delivery');
Route::get('/orders/acceptDelivery', 'OrdersController@acceptDelivery')->name('orders.acceptDelivery');

0
0 Comments

问题出现的原因是因为在Laravel控制器中创建自定义函数的路由时没有给出正确的路由顺序。解决方法是在定义资源路由之前添加自定义函数的路由,或者在自定义函数的路径中添加一些额外的路径。

在Laravel中,可以使用Route::get()方法来定义自定义函数的路由。在给出自定义函数的路径以及对应的控制器之后,可以使用->name()方法给路由命名。

例如,在上述代码中,我们可以看到两种解决方法。第一种方法是在定义资源路由之前添加自定义函数的路由,如下所示:

Route::get('/orders/storeInitialItems', 'OrdersController')->name('orders.storeInitialItems');

第二种方法是在自定义函数的路径中添加一些额外的路径,如下所示:

Route::get('/orders/storeInitialItems/add-some-extra-path', 'OrdersController')->name('orders.storeInitialItems');

通过这两种解决方法,我们可以确保自定义函数的路由被正确地定义和访问。

0