首页 > 解决方案 > 如何通过路由将我的视图映射到控制器?

问题描述

在我的PersonController我添加了一个额外的函数,旨在从我的Person模型生成报告,这就是我创建它的方式:

public function generatePersonDetails(Person $person){
    dd($person);
}

在我的web路线上,我有这个定义:

Route::resource('/person', 'PersonController'); 
Route::get('/person/person-details-report/{{ person }}', 'PersonController@generatePersonDetails'); 

在我的页面上,我有这个:

<a href="{{ URL::to('/person/person-details-report/'.$person) }}" target="_blank" class="btn btn-small" id="lt-btn-cancel" style="border-radius: 0;"></i>Person Details</a>

但是如果我点击我的锚标记,即人员详细信息,我得到了一个404|Not Found,但是在我的地址栏上我得到了http://127.0.0.1:8000/person/person-details-report/%7B%22id%22:1,%22person_id%22:1,%22receiver%22:%22Family%20Name,%20First%20Name%22,%22created_at%22:%222019-08-25%2011:27:08%22,%22updated_at%22:%222019-09-01%2012:00:20%22%7D

我应该如何处理我的路线?

标签: laravelroutes

解决方案


您需要交换和编辑您的路线和订单。来自资源控制器的其他路由需要首先,因为可能发生冲突。

Route::get('/person/person-details-report/{person}', 'PersonController@generatePersonDetails');
Route::resource('/person', 'PersonController'); 

推荐阅读