Как мне решить "Слишком мало аргументов для функции" в функции Laravel, с VueJS и применением DOMPDF? - PullRequest
0 голосов
/ 29 декабря 2018

Я подаю заявку на Лабораторию с Laravel и VueJS, в которой я хочу сделать PDF документы с отчетами.Для этого я установил DOMPDF.Когда я пытаюсь выполнить метод в VueJS, для открытия PDF-файла я получаю следующую ошибку: "Too few arguments to function App \ Http \ Controllers \ SampleController :: reportShow (), 1 passed and exactly 2 expected" Что я делаю не так?От уже большое спасибо

MuestraController:

public function informeMuestra(Request $request,$id){
    $id = $request->id;
    $muestra = Muestra::join('remitentes', 'remitentes.id', '=', 'muestras.remitente_id')
                ->join('solicitantes', 'solicitantes.id', '=', 'muestras.solicitante_id')
                ->join('localidads', 'localidads.id', '=', 'muestras.localidad_id')
                ->select('muestras.*', 'remitentes.nombre as nombre_remitente', 'solicitantes.nombre as nombre_solicitante', 'solicitantes.direccion as direccion_sol', 'localidads.localidad')
                ->where('muestras.id', '=', $id)->take(1)->get();
    $pedidos = EnsayoMuestra::join('ensayos', 'ensayo_muestra.ensayo_id', '=', 'ensayos.id')
                ->join('muestras', 'ensayo_muestra.muestra_id', '=', 'muestras.id')
                ->select('ensayo_muestra.*', 'ensayos.ensayo as ensayo', 'ensayos.metodo as metodo', 'ensayos.unidades as unidades')
                ->where('ensayo_muestra.muestra_id', '=',$id)
                ->orderBy('ensayo_muestra.id', 'asc')->get();

    $num_muestra=Muestra::select('numero')->where('id',$id)->get();

    $informe = \PDF::loadView('pdf.informemuestra',['muestra'=>$muestra,'pedidos'=>$pedidos]);
    return $informe->stream('muestra-'.$num_muestra[0]->numero.'.pdf');

Muestra.vue:

cargarInforme(id){
            window.open('http://localhost/dsa/public/muestra/informeMuestra?id' + id + ',' + '_blank');
        },

Route (web.php):

Route::get('/muestra/informeMuestra/{id}', 'MuestraController@informeMuestra')->name('muestra_pdf');

1 Ответ

0 голосов
/ 30 декабря 2018

Наконец, единственное решение, которое сработало для меня, было следующее:

window.open ('http://localhost/dsa/public/muestra/informeMuestra/' + id);

...