2014-03-25 84 views
1

我正在使用资源路径访问我的网站上的几个crud功能,但在访问多个页面时出现NotFoundHttpException错误。这是早些时候的工作,我认为我没有改变任何东西。Laravel资源路由NotFoundHttpException

Route::resource('/contractors', 'ContractorController'); 

具体ContractorController方法:

public function skills($id) 
{ 
    $contractor = Contractor::find($id); 
    return View::make('contractors.skills') 
     ->with('contractor', $contractor); 
} 

我把所有的坐落在ContractorController太基本的CRUD方法。我使用的技巧方法来创建编辑透视表标签的新观点

我的网址是公共/承包商/ 1 /技能,这把剑的观点:

contractors/skills.blade.php 

你看到什么,我我做错了吗?

回答

0

默认情况下资源控制器只能处理几条路径,您可以在Resource Controllers的文档条目中看到它们的完整列表(共7条)。

skills URI段不是其中之一。您需要为此添加单独的路由:

Route::get('/contractors/{contractorId}/skills', '[email protected]'); 

但是,这不是真正的RESTful设计。你可能会更好,并有独立的skills资源。

+0

谢谢。我现在全部工作了。不知道为什么我认为我可以通过一条路线运行一切! – retrograde

+0

是否有可能从一个控制器方法生成两个视图?返回View :: make('Contractors.edit') - > with('contractor',$ contractor); View :: make('Contractors.photos') - > with('contractor',$ contractor); – retrograde

+0

你的意思是有条件的吗?当然..'if($ condition){return View :: make(..)} else {return View :: make(..);'总共?不是真的。您只能返回1个响应,并且View :: make返回该响应。不过,您可以制作自己的回复,其中包含其他回复的内容。 –