Php 向laravel中的路由名称添加uri参数

Php 向laravel中的路由名称添加uri参数,php,laravel,routes,crud,Php,Laravel,Routes,Crud,我正在做一个拉威尔项目,我制作了一个简单的积垢系统,但我有一个小问题 为了在我的项目中生成URL系统,我制作了一个Route::macro 并将其添加到AppServiceProvider: Route::macro('crud', function () { Route::group([ ], function () { // Route::resource('', 'CrudController');

我正在做一个拉威尔项目,我制作了一个简单的积垢系统,但我有一个小问题

为了在我的项目中生成URL系统,我制作了一个
Route::macro
并将其添加到
AppServiceProvider

Route::macro('crud', function () {
        Route::group([

         ], function () {

            //    Route::resource('', 'CrudController');
            Route::get('{model}', 'CrudController@index');
            Route::get('{model}/create', 'CrudController@create');

            Route::post('{model}', 'CrudController@store');             /** << post **/

            Route::get('{model}/{id}', 'CrudController@show');
            Route::get('{model}/{id}/edit', 'CrudController@edit');

            Route::match(['PUT', 'PATCH'],'{model}/{id}', 'CrudController@update'); /** << post **/
            Route::delete('{model}/{id}', 'CrudController@destroy'); /** << post **/
        });
    });

有可能吗?请提前感谢

您可以为该型号的一组路线添加名称前缀


在本例中,您可以循环一些数字,并动态创建一些路由:

 for ($i = 0; $i < 5; $i++) {
     Route::get('test/' . $i, 'Controller@test_' . $i)->name('test.' . $i);
 }
或者您可以在configs(例如在“config/app.php”中)中定义该数组,如下所示:

在routes.php中,您可以通过以下方法检索它(在更改app.php后,不要忘记运行“php artisan config:cache”):


您的想法很好,但这种方法不起作用,因为不幸的是,Laravel不支持将参数传递到
前缀
名称
,错误:
未定义路由[admin.posts.index]。
+-----------+----------------------------+-----------------+------------------------------------------------------------+
| Method    | URI                        | Name            | Action                                                     |
+-----------+----------------------------+-----------------+------------------------------------------------------------+
| GET|HEAD  | {model}                    | {model}.index   | App\Http\Controllers\CrudController@index                  |
| POST      | {model}                    | {model}.store   | App\Http\Controllers\CrudController@store                  |
| GET|HEAD  | {model}/create             | {model}.create  | App\Http\Controllers\CrudController@create                 |
| GET|HEAD  | {model}/{id}               | {model}.show    | App\Http\Controllers\CrudController@show                   |
| PUT|PATCH | {model}/{id}               | {model}.update  | App\Http\Controllers\CrudController@update                 |
| DELETE    | {model}/{id}               | {model}.destroy | App\Http\Controllers\CrudController@destroy                |
| GET|HEAD  | {model}/{id}/edit          | {model}.edit    | App\Http\Controllers\CrudController@edit                   |
+-----------+----------------------------+-----------------+------------------------------------------------------------+
 for ($i = 0; $i < 5; $i++) {
     Route::get('test/' . $i, 'Controller@test_' . $i)->name('test.' . $i);
 }
 $models = ['user', 'owner', 'admin'];
 foreach ($models as $model) {
     Route::get($model, 'CrudController@index')->name($model . '.index');
 }
 'models' => ['user', 'owner', 'admin'];
 $models = config('app.models');
 // foreach loop