Laravel 5也使用资源路径将表单提交到索引

时间:2016-01-22 18:06:01

标签: php laravel routing resources

编辑:

我正在努力完成一些简单的事情。在我的约会。索引视图我有一个表格。提交表单后,我想在查询中使用这些值,如下所示:

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:

我收到以下错误:

方法App \ Http \ Controllers \ AppointmentsController :: store()不存在

我知道这是因为我的路线:

Route::get('appointments', array('as' => 'appointments', 'uses' => 'AppointmentsController@index'));
Route::post('appointments', array('uses' => 'AppointmentsController@index'));
Route::resource('appointments', 'AppointmentsController');

如果我像这样改变邮政路线,那就有效:

Route::post('appointments/anythinghere', array('uses' => 'AppointmentsController@index'));

问题是,为什么这是(因为资源路线,我理解,但为什么),我怎样才能“修复”它,所以我仍然可以像上面那样使用我的路线?

1 个答案:

答案 0 :(得分:1)

资源路由在控制器中创建存储操作。您可以为追索权指定一部分行动。

在你的情况下试试

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