我遇到一些我无法解释的问题。我正在与laravel合作,我只是为get方法编写了一条路由,没什么大不了的,但是对于这条路由,我正在调用名为 generatefile 的方法,而laravel在调用我的 index 方法没有任何意义。这是我的代码。
ReportController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\ReportTypes;
use App\Report;
use App\Hardware;
use App\Customer;
use App\User;
use App\ReportNotes;
use DB;
use PDF;
use Illuminate\Support\Carbon;
class ReportController extends Controller
{
public function index($type){
$data = new ReportTypes;
$datatype = $data->getData($type);
$hm = $datatype->report_type_includes_hardware ? true : false;
$customers = Customer::all();
$users = User::all();
$report = new Report;
$reports = $report->getData($type);
if($hm){
$models = Hardware::all();
return view('report/types/index',compact('datatype','hm','models','customers','users','reports'));
}
return view('report/types/index',compact('datatype','hm','reports','customers','users'));
}
public function generatefile(){
$data = ['title' => 'Welcome to HDTuto.com'];
$pdf = PDF::loadView('myPDF', $data);
return $pdf->download('hdtuto.pdf');
}
public function details($type, $folio){
$data = new ReportTypes;
$datatype = $data->getData($type);
$report_notes = new ReportNotes;
$type_id = DB::table('report_types')->where('report_type_serie','=',$type)->get()->first();
$report = DB::table('reports')->where([
['FK_report_type_id','=',$type_id->PK_report_type_id],
['report_folio','=',$folio]
])->first();
$notes = $report_notes->getData($report->PK_report_id);
return view('report/types/details',compact('datatype','notes','report'));
}
public function store(Request $request){
$report = new Report;
$data = new ReportTypes;
$report->FK_report_type_id = $request->RPType;
$report->report_folio = $data->nextFolio($request->RPType);
$report->FK_customer_id = $request->RPCustomer;
$report->FK_hardware_model_id = $request->RPHardware;
$report->FK_creator_user_id = $request->RPCreator;
$report->FK_responsable_user_id = $request->RPResp;
$report->FK_assistant1_user_id = $request->RPAssist;
$report->FK_report_state_id = 1;
$report->report_issue = $request->RPIssue;
$report->report_description_issue = $request->RPDescIssue;
$report->report_created_at = Carbon::now();
$report->report_attended_at = Carbon::now();
$report->report_updated_at = Carbon::now();
$report->report_finished_at = Carbon::now();
$report->save();
$data->incrementFolio($request->RPType);
return redirect()->route('reports',$request->RPTypeSerie);
}
}
我的路线
Route::get('reports/getfile','ReportController@getfile')->name('report.generatefile');
Route::get('reports/{type}','ReportController@index')->name('reports');
当我尝试访问此路由时,我得到了:
我在index方法中遇到了错误,但是我没有调用它。
任何人都可以解释一下为什么会这样吗?
答案 0 :(得分:0)
在将路线编入索引之前尝试放置您的路线。 您可以检查以下问题:Laravel Route issues with Route order in web.php
答案 1 :(得分:0)
首先,检查您的route.php
是否没有使用相同方法Route::get('reports/getfile'...
或路由名称->name('report.generatefile')
的重复路由URI。
可能有两条重复的路线,而您正在使用的是使用ReportController@index
的路线。
第二,您在路由中使用的getFile
中似乎不存在ReportController
功能:
Route::get('reports/getfile','ReportController@getfile')->name('report.generatefile');
答案 2 :(得分:0)
您可以尝试
php artisan passport:install --force