Laravel视图未定义变量:sand_cmonths,我不熟悉Laravel和PHP

Laravel视图未定义变量:sand_cmonths,我不熟悉Laravel和PHP,php,laravel,laravel-7,Php,Laravel,Laravel 7,我找了很多,但没有任何帮助; 我将laravel 7与MySQL DB一起使用,我对PHP和laravel是新手 这是控制器: 这是我的路线 另外,当我禁用搜索路由EVRYTHING时,第二个变量$SAND\u CMONTHS在您定义资源路由时起作用。默认情况下,Laravel设置了一些路由。 定义以下内容时: Route::resource('sand','SandController'); Route::get('/sand','SandController@index'); Route

我找了很多,但没有任何帮助; 我将laravel 7与MySQL DB一起使用,我对PHP和laravel是新手

这是控制器:

这是我的路线


另外,当我禁用搜索路由EVRYTHING时,第二个变量$SAND\u CMONTHS在您定义资源路由时起作用。默认情况下,Laravel设置了一些路由。 定义以下内容时:

Route::resource('sand','SandController');
Route::get('/sand','SandController@index');
Route::get('/sand-search','SandController@search')->name('sand.search');
Laravel会自动创建一个get路由,如下所示:

Route::resource('sand','SandController');
Route::get('/sand','SandController@index');
Route::get('/sand-search','SandController@search')->name('sand.search');
因此,您可以看到用于搜索的路由已定义。因此,当您为搜索route::get'/sand'调用路由时SandController@index'; 首先调用此路由,它正在命中索引方法。因此,沙尘暴是一个变量误差。 我建议您更改搜索路线的名称,如下所示:

Route::resource('sand','SandController');
Route::get('/sand','SandController@index');
Route::get('/sand-search','SandController@search')->name('sand.search');

这应该很好。

不能使用相同的URI前缀。此处/sand和/sand是相同的前缀。我建议您更改第二个路由URI前缀,如route::get'/search/sand','SandController@search'->命名为'sand.search';但是我需要在同一页上搜索路径,当我更改路径时,它会将我带到一个空白的未找到页面route::get'/sand',中的/sandSandController@search'是控制器的索引方法的默认路由放置路由::get'/sand','SandController@search'->在Route::resource上方命名为'sand.search',或者将/sand更改为其他名称如果这样做,则会与资源索引方法sand.index冲突。了解有关资源控制器的更多信息从这里开始,我将使用sand search,这是一个空白页面ErrorException未定义变量:sand_cmons如果要将搜索结果发送到索引页面。然后,您必须使用相同的名称命名变量。在搜索函数中添加以下行:$sand\u cmonths=DB::table'sand'->selectDB::raw'cmonth'->groupBy'cmonth'->get;