Laravel形式行动

时间:2013-09-09 01:23:06

标签: php laravel

我很难设置简单的链接/操作。

在我的索引视图中,当我点击按钮时,我想要在ProjectsController中启动getTest操作这个小形式:

{{ Form::open(array('action' => array('ProjectsController@getTest', $project->id))) }}
<button type="submit"><i class="icon-arrow-up"></i></button>
{{ Form::close() }}

这是getTest函数:

public function getTest(){
        echo "test";
        return 'test';
}

但是这让我误以为"Array_combine(): Both parameters should have an equal number of elements"

我尝试用一​​条路线做这项工作。打开这个表格:

{{ Form::open(['method' => 'GET', 'route' => ['test_route', $project->id]]) }}

这条路线:

Route::get('projects/test', array('as' => 'test_route', 'uses' =>'ProjectsController@getTest'));

但我仍然有同样的错误。 我找不到任何关于路由/发送到没有给我这个问题的行动的好文档。我看不出是什么

2 个答案:

答案 0 :(得分:0)

你的路线不需要参数,所以我认为这段代码就足够了:

{{ Form::open(['method' => 'GET', 'route' => 'test_route']) }}

答案 1 :(得分:0)

我认为问题在于您是在为操作添加参数,但是您没有在路线中管理这些参数,您的getTest()函数也不接受任何参数。另一个问题是您将路线设置为GET路线,但您的表单将使用POST

在您的表单上使用Form::hidden('id', $project->id);会更容易,然后在getTest()函数中,您可以使用$id = Input::get('id');获取变量。您也可以在表单中使用您的路由名称。 Form::open(array('route'=> 'test_route', method=> 'get'));