我想在foreach中$selected_student在selecct查询中选择所有具有所有受尊重的student_id的列,然后显示数据表(它不这样做,并给出错误)。
我正在使用yajra数据表。
控制器
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);
}
}
错误在foreach
循环中,
这是结构或foreach
环路,
foreach ($variable as $key => $value){
# code...
}
在您的情况下,$variable
和$value
是相同的,都是$select_student
。将其更改为
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();
}