У меня есть приложение Laravel, где я использую jQuery DataTables Master/Details, чтобы показать дополнительную информацию. Я могу показать данные дочерней строке, но сначала хочу, чтобы она была отфильтрована, в зависимости от выбранной строки. Информация, которую я хочу получить, не находится в исходном источнике данных, который я использовал для создания DataTable. Поэтому я хочу передать идентификатор записи в новый запрос, который я использую непосредственно из javascript. Вот код:Передача параметра в Eloquent ORM внутри функции javascript
function kpi_values(d) {
// `d` is the original data object for the row
var $id = d.id;
return '<table>'+
'<thead>'+
'<tr>'+
'<th>Month</th>'+
'<th>Value</th>'+
'<th>Comment</th>'+
'</tr>'+
'</thead>'+
'<tbody>'+
'@foreach(\App\Reports::with("kpi")
->where("kpi_id",'+$id+')'+
//this gives no records
//->where("kpi_id",$id) -> this gives an error
'->orderBy("month","desc")
->take(5)
->get() as $report)'+
'<tr>'+
'<td>{{$report->month}}</td>'+
'<td>{{$report->value}}</td>'+
'<td>{{$report->comment}}</td>'+
'</tr>'+
'@endforeach'+
'<tbody>'+
'</table>'
}
Ошибка, я получаю это:
ErrorException in e09c19f3dff5443f7b05b7c3c3e2f2a2 line 66:
Undefined variable: id
EDIT 1 Я просто понял, что var $id
не является переменной PHP поэтому он не будет работать, как это. Поэтому я обновил свой код, заменив var $id = d.id
на <?php $id = /*the problem*/ ?>
Однако я не могу передать d.id
в качестве значения для этой переменной.