如何在Laravel 5的DELETE方法中传递多个参数?

uma*_*uma 2 php html5 laravel-5

我正在使用laravel 5框架进行项目。我想为我的课程传递两个parameter通行DELETE方法Controller

ex.blade.php

<td align='center'>
    {!! Form::open(['method' => 'DELETE', 'route'=>['commitee-page-member.destroy',$member->id ,$commitee->id]]) !!}                                               
    <button type="submit" class="btn btn-default btn-sm" onclick="return confirm('Are you sure?')"> <span class="glyphicon glyphicon-trash"></span> </button> 
    {!! Form::close() !!}
</td>
Run Code Online (Sandbox Code Playgroud)

当我点击按钮,我可以看到variable通过url

网址:

../masterlaw.com/commitee-page-member/1?5
Run Code Online (Sandbox Code Playgroud)

我尝试不同的方式,采用这two parameters1和5。

控制器类代码:

public function destroy(Request $request, $id)
{
    //       
    echo $id;
    echo $request['id'];      
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然无法记录retrieve数据。请帮我。

man*_*nix 5

这里的问题是资源类的destroy()方法仅接受一个参数,即ID。一种可能的解决方案是创建一个控制器类(不是资源)并创建一个接受两个参数的方法:

class PageController extends Contoller{

    public function destroy(Request $request, $memberId, $commiteeId){
        // echo memberId;
    }
}
Run Code Online (Sandbox Code Playgroud)

命名一条符合您的需求和表单格式的路线:

Route::get('delete-page/{memberId}/{commiteeId}', [
    'as' => 'destroy', 
    'uses' => 'PageController@destroy'
]);
Run Code Online (Sandbox Code Playgroud)

现在,您的路线已准备好与两个参数一起使用:

{!! Form::open([
    'method' => 'POST', 
    'route' => ['destroy', $member->id, $commitee->id]]) !!}
Run Code Online (Sandbox Code Playgroud)

另外,您可以阅读有关嵌套资源的更多信息,如果您的项目是在特定结构下进行的,则对您很有用。

编辑。 如果您认为必须在资源类中保留代码,则可以添加自定义方法并routes.php在资源声明之前在文件中声明它:

// using "delete" as a verb
Route::delete('memberPage/customDestroy/{memberId}/{commiteeId}', 'MyResource@customDestroy');
Route::resource('memberPage', 'MyResource');
Run Code Online (Sandbox Code Playgroud)