我正在尝试在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函数来执行此语法。我做错了什么,所以我不能称这个新功能。我有一种感觉,这是我的路线的措辞,但我找不到任何能告诉我该做什么的东西。提前谢谢。
答案 0 :(得分:1)
您必须定义路线名称:
Route::get('/results', ['as'=>'student.results', 'uses'=>'StudentsController@results']);
您需要为每个手动定义的路线执行此操作。资源路由由Laravel自动命名。