将数据从查询传递到视图

时间:2016-12-05 17:47:04

标签: mysql laravel-5.3

我遇到的问题是,如果有人能给我一个认真的想法,我不知道如何在视图中使用查询数据,我使用的形式是这样但它给了我一个错误:

我的控制器:

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)

1 个答案:

答案 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'));
}
相关问题