我遇到的问题是,如果有人能给我一个认真的想法,我不知道如何在视图中使用查询数据,我使用的形式是这样但它给了我一个错误:
我的控制器:
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)
答案 0 :(得分:0)
get()
方法返回包含结果的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()
方法创建包含变量及其值的数组。这样你就可以摆脱行
$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'));
}