У меня есть группа маршрутов, которая имеет такой параметр:
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'));
}
Теперь, когда я хочу создать форму, которая отправляет запрос store
функция MemberController
как это (в member-create.blade.php
):
{!! Form::open(array('action' =>['MemberController@store'], 'id'=>'createMemberForm')) !!}
Ларавел говорит, что:
Missing required parameters for [Route: member.store] [URI: website/{account}/member].
Это потому, что я должен добавить $account
параметр для store
функция. на самом деле, потому что я использовал параметр в группировке маршрутов, я всегда должен сначала отправить значение в качестве этого параметра create
функция, а затем оттуда пройти store
Функция, которая, естественно, отнимает у меня много времени.
Есть ли способ решить эту проблему, когда параметр $ account отправляет функции автоматически или любым другим способом?
Я не думаю, что есть простой способ отправить его автоматически. Вы можете явно использовать:
{!! Form::open(array('url' =>route('member.store', ['account' => 'account_value']), 'id'=>'createMemberForm')) !!}
чтобы передать действительное значение в маршрут, при необходимости можно создать вспомогательный метод, но другого разумного способа сделать это автоматически нет. Когда вы используете параметр в маршруте, это обычно означает, что вам это нужно, поэтому, возможно, вам следует подумать, действительно ли он вам нужен, если вы хотите заполнить его автоматически?
Других решений пока нет …