2015-09-16 77 views
2

我正在做項目使用laravel 5框架。我想通過兩個parameter通過DELETE方法,爲我的Controller類。如何在laravel 5的DELETE方法中傳遞多個參數?

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> 

當我點擊按鈕,我可以看到variable通過url

網址:

../masterlaw.com/commitee-page-member/1?5 

我嘗試不同的方式,把這些two parameters 1和5.

控制器類代碼:

public function destroy(Request $request, $id) 
{ 
    //  
    echo $id; 
    echo $request['id'];  
} 

但我仍然不能retrieve數據。請幫幫我。

回答

4

這裏的問題是,destroy()方法resource class只接受一個參數,ID。一個可能的解決方案是創建一個控制器類(而不是資源),並創建接受兩個參數的方法:

class PageController extends Contoller{ 

    public function destroy(Request $request, $memberId, $commiteeId){ 
     // echo memberId; 
    } 
} 

名稱路線適合您的需求和表格的格式:

Route::get('delete-page/{memberId}/{commiteeId}', [ 
    'as' => 'destroy', 
    'uses' => '[email protected]' 
]); 

現在你的路線準備用兩個參數一起使用:

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

作爲附加的註釋,你可以閱讀更多關於嵌套資源,它ç如果你的項目是在一個特定的結構下進行的,那麼對你會有幫助。

編輯。 如果您在資源類認爲有必要保持代碼,您可以添加自定義的方法和資源宣佈前的routes.php文件中聲明它:

// using "delete" as a verb 
Route::delete('memberPage/customDestroy/{memberId}/{commiteeId}', '[email protected]'); 
Route::resource('memberPage', 'MyResource'); 
+0

我可以不用創建新的控制器類。我的意思是,我可以添加新的方法相同的資源類。我這樣打電話。 *** {!!Form :: open(['method'=>'POST','route'=> ['commitee-page-member.destroy_members',$ member-> id,$ commitee-> id]])/*** ////// route /////////// Route :: resource('commitee-page-member','CommiteeMemberController'); – uma

+0

我編輯了答案 – manix

+0

謝謝@manix – uma

1

你的代碼幾乎是好的,我不得不做出一些編輯

./masterlaw.com/commitee-page-member/1?val=5&&val2=4

,並在控制器

public function destroy(Request $request, $id) 
{  
echo $id; 
echo $request->val; 
echo $request->val2;  
} 

當你將在資源控制器的函數中添加新的get參數

您只需在該函數中添加請求$request parameter,然後就可以捕獲所有值。喜歡編輯功能

manage/pages/1/edit?language=en 

public function edit(Request $request,$id){ 
$getvalue=$request->language; 
} 
相關問題