2016-12-05 42 views
0

我遇到的問題是我不知道如何在視圖中使用查詢的數據如果有人可以給我一個認真的想法,我使用的形式是這個,但它給我一個錯誤:將數據從查詢傳遞到視圖

我的控制器:

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

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')); 
}