将数据从查询传递到视图
Pass data from a query to a view
我遇到的问题是,如果有人能给我一个认真的想法,我不知道如何在视图中使用查询数据,我使用的表格是这样的,但它给了我一个错误:
我的控制器:
public function edit($id){
$datosProfesor = DB::table('profesor')->where('id', $id)->get();
$institucionDB = DB::table('institucion')->get();
$datos = array('datosProfesor' => $datosProfesor, 'institucionDB' => $institucionDB);
return view('profesorView/editarProfesor', $datos);
}
我的看法:
<div class="form-group">
<h4>Nombre</h4>
<input type="text" name="nombre_profesor" id="nombre_profesor" class="form-control" placeholder= 'Nombre' value="{{$datosProfesor['id']}}">
</div>
我出现的错误是这样的:
Undefined index: id (View: /var/www/html/Konecte/resources/views/profesorView/editarProfesor.blade.php)
get()
方法 returns 包含结果的 Illuminate\Support\Collection
,其中每个结果都是 PHP StdClass
对象的一个实例。您可以通过将列作为对象的 属性 进行访问来访问每一列的值:
foreach ($datosProfesor as $profesor) {
echo $profesor->id;
}
如果你想得到一个结果,那么你可以使用 find()
方法:
$datosProfesor = DB::table('profesor')->find($id);
这是以下的缩写形式:
$datosProfesor = DB::table('profesor')->where('id', $id)->first();
再给您一个提示,您可以使用 PHP 的 compact()
方法来创建包含变量及其值的数组。这样你就可以去掉 line
$datos = array('datosProfesor' => $datosProfesor, 'institucionDB' => $institucionDB);
您的最终代码将如下所示:
public function edit($id){
$datosProfesor = DB::table('profesor')->find($id);
$institucionDB = DB::table('institucion')->get();
return view('profesorView/editarProfesor', compact('datosProfesor', 'institucionDB'));
}
我遇到的问题是,如果有人能给我一个认真的想法,我不知道如何在视图中使用查询数据,我使用的表格是这样的,但它给了我一个错误:
我的控制器:
public function edit($id){
$datosProfesor = DB::table('profesor')->where('id', $id)->get();
$institucionDB = DB::table('institucion')->get();
$datos = array('datosProfesor' => $datosProfesor, 'institucionDB' => $institucionDB);
return view('profesorView/editarProfesor', $datos);
}
我的看法:
<div class="form-group">
<h4>Nombre</h4>
<input type="text" name="nombre_profesor" id="nombre_profesor" class="form-control" placeholder= 'Nombre' value="{{$datosProfesor['id']}}">
</div>
我出现的错误是这样的:
Undefined index: id (View: /var/www/html/Konecte/resources/views/profesorView/editarProfesor.blade.php)
get()
方法 returns 包含结果的 Illuminate\Support\Collection
,其中每个结果都是 PHP StdClass
对象的一个实例。您可以通过将列作为对象的 属性 进行访问来访问每一列的值:
foreach ($datosProfesor as $profesor) {
echo $profesor->id;
}
如果你想得到一个结果,那么你可以使用 find()
方法:
$datosProfesor = DB::table('profesor')->find($id);
这是以下的缩写形式:
$datosProfesor = DB::table('profesor')->where('id', $id)->first();
再给您一个提示,您可以使用 PHP 的 compact()
方法来创建包含变量及其值的数组。这样你就可以去掉 line
$datos = array('datosProfesor' => $datosProfesor, 'institucionDB' => $institucionDB);
您的最终代码将如下所示:
public function edit($id){
$datosProfesor = DB::table('profesor')->find($id);
$institucionDB = DB::table('institucion')->get();
return view('profesorView/editarProfesor', compact('datosProfesor', 'institucionDB'));
}