【问题标题】:Laravel - How do I add the System Name to every url without adjusting every routes and ajax urlsLaravel - 如何在不调整每个路由和 ajax url 的情况下将系统名称添加到每个 url
【发布时间】:2018-05-24 13:46:50
【问题描述】:

我想知道如何在不更改路由 php 文件中的每个路由以及不更改我拥有的每个 ajax url 的情况下将系统名称添加到我拥有的每个路由。

这是我的示例路线,

/* Maintenance Module */
Route::get('unit_maintenance/','UnitsController@index');

/* Get All */
Route::get('/get_units_all',  'UnitsController@getUnitListAll');

/* Update */
Route::post('/unit/update/{id}','UnitsController@setUnitList');

/* Save New */
Route::post('save_unit/','UnitsController@store');

而且我还有很多 ajax url,

有没有我能做到这样,

http://ipaddress/systemName/route/

无需一一更改所有内容,包括我的 ajax 网址,

谢谢!

【问题讨论】:

  • - 你应该使用命名路由,然后可以很容易地在一个地方进行更改,例如在 routes.php 文件中并相应地为路由添加前缀,
  • 我必须在每条路线上添加系统名称的那一刻,我意识到这是主要目的。但是我可以在 ajax url 上使用命名路由吗?
  • 是的,您必须在所有视图中使用命名路由。使用命名路由是最好的方法,就像你想在路由中进行更改一样,你只需要在 routes.php 文件中进行更改,而不是视图。

标签: php laravel


【解决方案1】:

您可以使用Route Groups

对于 Laravel

Route::group(['prefix' => 'systemName'], function () {

    /* Maintenance Module */
    Route::get('unit_maintenance/','UnitsController@index');

    /* Get All */
    Route::get('/get_units_all',  'UnitsController@getUnitListAll');

    /* Update */
    Route::post('/unit/update/{id}','UnitsController@setUnitList');

    /* Save New */
    Route::post('save_unit/','UnitsController@store');

});

对于 Laravel > 5.3

Route::prefix('systemName')->group(function () {

    /* Maintenance Module */
    Route::get('unit_maintenance/','UnitsController@index');

    /* Get All */
    Route::get('/get_units_all',  'UnitsController@getUnitListAll');

    /* Update */
    Route::post('/unit/update/{id}','UnitsController@setUnitList');

    /* Save New */
    Route::post('save_unit/','UnitsController@store');

});

【讨论】:

  • 如果我这样做,我是否必须更改所有重定向和 ajax url?比如,从 ajax url: '/get_units_all' 到 '/systemName/get_units_all' ?
  • 你也需要改变,所有的 url 都被改变并且有一个前缀。
【解决方案2】:

最简单的方法是将所有内容都放在路由前缀中!

类似的东西:

Route::prefix('systemName')->group(function () {

     //All your rotes inside 

});

恐怕你需要改变你的 ajax 或者像这样重定向旧路由:

Route::redirect('/here', '/there', 301);

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2013-09-04
    相关资源
    最近更新 更多