是否可以使用多个参数进行路径模型绑定?例如
网络路线:
Route::get('{color}/{slug}','Products@page');
因此url
www.mysite.com/blue/shoe
将被绑定到shoe
模型,其color
为蓝色。
答案 0 :(得分:2)
首先,拥有如下路线会更自然:
<%= simple_form_for @job, :url => company_jobs_path(@company, @job), :method => :post%>
<%= f.input :title, label: "Title of job" %>
<%= f.submit 'Create', class: "btn btn-success" %>
<% end %>
并通过路由绑定解析Route::get('{product}/{color}', 'Products@page');
,并直接使用控制器方法中的product
参数来获取蓝鞋列表。
但是,让我们假设出于某种原因,这是一项要求。我开始时更明确地说明你的路线:
color
然后,在Route::get('{color}/{product}', 'Products@page');
的{{1}}方法中,我会添加以下内容:
boot
RouteServiceProvider.php
这里很重要,因为在解析这样的路线模型时,你实际上想要返回一个模型。
这就是为什么我认为它没有多大意义,因为你想要的可能是一个特定颜色的产品列表,而不仅仅是一个。
无论如何,我在寻找实现上述目标的方法时最终得到了这个问题,所以希望它会帮助别人。
答案 1 :(得分:0)
不要忘记声明参数类型:
Route::delete('safedetail/{safeId}/{slug}', [
'as' => 'safedetail.delete',
'uses' => 'SafeDetailController@destroy',
])->where([
'safeId' => '[0-9]+',
'slug' => '[a-z]+',
]);
答案 2 :(得分:-1)
尝试将控制器更改为:
class Pages extends Controller{
public function single($lang, App\Page $page){
dd($page);
}
}
您必须添加页面模型。