laravel 8 中未定义的变量 - 尝试<select>从数据库获取列表



我正试图从数据库中将一个列表提取到表单的<select>中。我有一个类为(index,getLocations,create,store,edit,update,destroy(的控制器

public function getLocations($locationList)
{
$locationList = Locations::select('id', 'locationName')->get();
return view('pages.dataEntry.reports.reports', compact('locationList'));
}

getLocation有自己的型号:

class Locations extends Model
{
use HasFactory;
protected $table = 'kaec_locations';
}

并且我得到了未定义的变量$locationList is undefined

<select class="form-select" name="caseLocation">
<option value="none" selected disabled>Select Location</option>
@foreach ($locationList as $item)
<option value="{{ $item->id }}"> {{ $item->locationName }} </option>
@endforeach
</select>
  • 这是个好做法吗?有一个单独的位置模型
  • 为什么变量是未定义的?它应该包括在路线中吗
Route::controller(ReportController::class)->group(function () {
Route::get('reports', 'getLocations');
Route::get('reports', 'index')->name('reports.index'); // Index page (DataTable)
Route::get('reports/create', 'create')->name('reports.create'); // The form for adding new records
Route::post('reports/create', 'store')->name('reports.store'); // Add new to DB
Route::get('reports/edit/{report}', 'edit')->name('reports.edit'); // The form for editing records
Route::put('reports/edit/{report}', 'update')->name('reports.update'); // Update record to DB
Route::get('reports/{report}', 'destroy')->name('reports.destroy'); // Delete from DB
});

明白了。我不需要为此制作函数。我已经有了添加新数据create()的功能。Create是指我想显示的<select>表格的刀片文件

所以我只是删除了getLocations()并将代码添加到create()

/**
** Add new Record Page.
**/
public function create()
{
$locationList = Locations::all();
return view('pages.dataEntry.reports._addForm', compact('locationList'));
}

最新更新