为什么所有子资源路由方法都需要路由组中的参数

why paramter in a route group is required in all sub resource route methods

我有一个路由组,其参数如下:

Route::prefix('/website/{account}')->group(function () {
        Route::group(['middleware' => ['auth']], 
            Route::resource('/member', 'MemberController');
        });
    });

如您所见,路由组中有一个 account 参数。

现在要显示 member-create 页面,我将此添加到 MemberController

public function create ($account)
        {
            return view('admin/pages/members/members-create',compact('account'));
        }

现在,当我想创建一个向 MemberControllerstore 函数发送请求的表单时(在 member-create.blade.php 中):

{!! Form::open(array('action' =>['MemberController@store'],  'id'=>'createMemberForm')) !!}

laravel 表示:

Missing required parameters for [Route: member.store] [URI: website/{account}/member].

那是因为,我必须在store函数中添加一个$account参数。事实上,因为我在路由分组中使用了一个参数,所以我必须首先将一个值作为该参数发送到 create 函数,然后从那里将它传递给 store 函数,这自然需要很多时间我的时间。

有什么方法可以解决 $account 参数自动或任何其他方式发送到函数的问题

我认为没有简单的方法可以自动发送它。您显然可以使用:

{!! Form::open(array('url' =>route('member.store', ['account' => 'account_value']),  'id'=>'createMemberForm')) !!}

将有效值传递给路由,如果需要可以创建辅助方法,但没有其他合理的方法可以自动执行此操作。当你在路由中使用参数时,通常意味着你需要它,所以如果你想自动填充它,也许你应该考虑是否真的需要它?