我正试图从数据库中将一个列表提取到表单的<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'));
}