我一直在为一些非常简单的事情而挣扎,尽管如此,Laravel的路由系统的模糊性使其简单的路由方法变得复杂。我已经完成了这里列出的问题,但似乎没有什么帮助,所以就这样开始了。
我以前在一个名为"创建"的操作中定义了一个到控制器的路由。假设此操作接受表单中的发布数据并将其持久化。此create方法有一个参数,如果添加项目id,则该参数默认为null。否则,我们将传递一个id,例如domain/projects/add/22进行编辑,domain/projects/add创建一个新id。
以下是功能的框架:
public function create( $id = null ){ ... }
然后我定义了一条路线,它是:
Route::post( 'projects/add', 'ProjectsController@create' );
在我的表单中,我有{{form::open(array('url'=>'projects/add','method'=>'post')}}。
我不断收到与路由、Http或未找到异常的方法相关的错误。我试着听从网上的每一个建议,但一辈子都找不到自己的路。
请帮我指对方向,谢谢。
尝试使用以下示例代码
路线.php►
Route::post('projects/add/{id?}',array('as'=>'project_create','uses'=>'ProjectsController@create'));
ProjectsController.php►
class ProjectsController extends BaseController{
public function create( $id = null ){
...
}
projects.blade.php►(对于使用过的刀片模板,您的视图应该有blade.php扩展)
<html>....
<form action="{{ route('project_create') }}"method="post">
....
</form>
</html>
感谢大家的回复。在忙于工作之后,我终于回到了我的项目中,想尝试一下你的一些建议,但我失败了。
我确实找到了一个我尝试遵循的教程,基本上可以让我的路线正常工作。
在我添加的路线内(见下文):
Route::get('/projects/list', [
'as' => 'post.list',
'uses' => 'ProjectsController@listProjects'
]);
在我的控制器中,我刚刚创建了一个名为listProjects()的函数。至于显示我的表单,除了指向控制器中的newProject()方法外,我遵循了相同的模式。
尽管我不喜欢这种方法,但我最终创建了另一个函数,只是为了在填写并提交新的项目表单后保存我的POSTed表单数据。我仍然使用与projects/add相同的url,只是将其指向may控制器中名为saveProject()的不同函数。
关于视图,我只是将添加为同一保存路线的一部分,它起到了作用。下面是我遵循的教程的链接,并查看了代码。
http://www.codeheaps.com/php-programming/creating-blog-using-laravel-4-part-1/