【问题标题】:why paramter in a route group is required in all sub resource route methods为什么所有子资源路由方法都需要路由组中的参数
【发布时间】:2018-04-15 09:39:48
【问题描述】:

我有一个具有如下参数的路由组:

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 参数自动发送到函数或任何替代方式

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.4 laravel-routing


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 2021-02-04
      • 1970-01-01
      • 2015-10-25
      • 2021-07-01
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      相关资源
      最近更新 更多