2016-07-28 14 views
0

Ich will $ selected_student in foreach in select Abfrage sollte alle Spalte mit allen respektierten student_id auswählen und dann Datentabelle anzeigen (Es macht nicht gleich und gibt Fehler).Foreach in Controller in Laravel 5.2

Ich verwende yajra Datentabelle.

Controller

public function anyData(Request $request) 
{ 
    $selected_batch_value = Session::get('batch_selection'); 

    $select_student = DB::table('student_batch') 
     ->select('student_id') 
     ->where('batch_id', '=', $selected_batch_value) 
     ->get(); 

    if($selected_batch_value != 0) { 
     foreach($select_student as $select_student) {   
      $student[] = student::select('student_id', 'first_name','middle_name','last_name', \DB::raw('CONCAT(first_name, " ",middle_name, " " ,last_name) AS full_name'), 'mobile_num', 'email','address_line1','address_line2','state','city','pincode',\DB::raw('CONCAT(address_line1, "<br>",address_line2, "<br> " ,state, "<br>",city,"<br>",pincode) AS address')) 
      ->where('student_id', '=', $select_student->id) 
      ->get();     
     } 

     return Datatables::of($student)->make(true); 
    } else { 
     $student = student::select('student_id', 'first_name','middle_name','last_name', \DB::raw('CONCAT(first_name, " ",middle_name, " " ,last_name) AS full_name'), 'mobile_num', 'email','address_line1','address_line2','state','city','pincode',\DB::raw('CONCAT(address_line1, "<br>",address_line2, "<br> " ,state, "<br>",city,"<br>",pincode) AS address')); 

     return Datatables::of($student)->make(true); 
    }  
} 
+0

'foreach ($ select_student als $ select_student)' was? Es ist dumm, lesen Sie bitte einen Artikel über 'foreach' loop. – ventaquil

Antwort

1

Der Fehler in der foreach Schleife ist,

Dies ist die Struktur oder foreach Schleife ist,

foreach ($variable as $key => $value){ 
# code... 
} 

In Ihrem Fall die $variable und $value gleich sind, sowohl sind $select_student. ändere es in,

foreach($select_student as $value){ 
$student[] = student::select('student_id', 'first_name','middle_name','last_name', \DB::raw('CONCAT(first_name, " ",middle_name, " " ,last_name) AS full_name'), 'mobile_num', 'email','address_line1','address_line2','state','city','pincode',\DB::raw('CONCAT(address_line1, "<br>",address_line2, "<br> " ,state, "<br>",city,"<br>",pincode) AS address')) 
     ->where('student_id', '=', $value->id) 
     ->get(); 
}