2016-01-22 62 views
1

編輯:Laravel 5提交了使用資源路徑索引的表單

我想完成一些簡單的事情。在我的約會。索引視圖我有一個表單。一旦提交表單時,我想我的查詢中使用的值,就像這樣:

AppointmentsController:

public function index(Request $request) 
{ 
    $statusId = $request->status; 
    $labelId = $request->label; 
    $monthId = $request->month; 

    $appointments = Appointment::status($statusId)->label($labelId)->month($monthId)->get(); 

    return view('appointments', compact('appointments')); 
} 

一個在我的模型方法(它們都是相似的):

public function scopeStatus($query, $statusId) 
{ 
    if($statusId) 
    { 
     return $query->where('status_id', '=', $statusId); 
    } 
    else { 
     return false; 
    } 
} 

如果不是以下解決方案,最佳做法是什麼?

OP:

我收到以下錯誤:

方法應用\ HTTP \控制器\ AppointmentsController ::店()不存在

我知道那是因爲我的路線:

Route::get('appointments', array('as' => 'appointments', 'uses' => '[email protected]')); 
Route::post('appointments', array('uses' => '[email protected]')); 
Route::resource('appointments', 'AppointmentsController'); 

如果我改變,像這樣的佈線後,它的工作原理:

Route::post('appointments/anythinghere', array('uses' => '[email protected]')); 

問題是,爲什麼是這樣的(因爲資源路線的,我理解,但爲什麼),以及如何我可以去「修復」,所以我仍然可以使用我的路線像上面?

回答

1

資源路徑在您的控制器中創建存儲操作。您可以指定追索權的一部分行動。

在你的情況嘗試

Route::resource('appointments', 'AppointmentsController', 
       ['except' => ['store']]); 
+0

謝謝,這的確應該工作,但我使用創建一個新的約會的存儲方法。我想也許我應該找到另一種方法來完成我想要做的事情。我會更新OP,但:) :) – Hardist

+0

是的,你應該找到另一種方式。你可以在這裏看到https://laravel.com/docs/5.1/controllers#restful-resource-controllers資源控制器的工作原理 –