2015-07-10 3 views
2

У меня есть приложение 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 в качестве значения для этой переменной.

ответ

1

Я думаю, что вы не можете получить идентификатор от javascript на PHP, как это. Потому что PHP визуализирует ваш скрипт и отправляет его с HTML в браузер.

Вы должны написать AJAX вызова для каждой строки или подготовить данные перед визуализацией в HTML

1

Это не будет работать так, как вы хотели. Вам лучше пойти с вашим original approach. Если вы опубликуете структуру db по предыдущему вопросу, я могу взглянуть на нее.

Смежные вопросы