无法弄清楚如何将方法添加到资源laravel 5

时间:2018-03-05 03:00:28

标签: laravel-5

我正在尝试在laravel 5.6中为我的资源添加方法。这是我的web.php文件:

Route::get('/home', 'HomeController@index')->name('home');
Route::get('/results', 'StudentsController@results');
Route::resource('student', 'StudentsController');

这是我的控制器的(重要部分):

public function index()
    {
        return view('search');
    }

    public function results()
    {
        $search = \Request::get('search');

        $results = Student::where('last_name','like','%'.$search.'%')->get();

        return view('results')->with('results', $results);

    }

我试图通过执行{{route('student.results')}}在表单上的操作中调用“结果”函数,但它返回的是

的永久错误
Route [student.results] not defined.

我可以使用控制器中的所有其他默认crud函数来执行此语法。我做错了什么,所以我不能称这个新功能。我有一种感觉,这是我的路线的措辞,但我找不到任何能告诉我该做什么的东西。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您必须定义路线名称:

Route::get('/results', ['as'=>'student.results', 'uses'=>'StudentsController@results']);

您需要为每个手动定义的路线执行此操作。资源路由由Laravel自动命名。