将变量传递给在Laravel中使用URL :: to进行路由

时间:2014-07-16 04:37:20

标签: php laravel laravel-4

以下是我在与我试图呼叫的路线相同的控制器create.blade.php中呼叫它的方式:

{{ Form::open(['route' => 'myRoute']) }}
   <button type="submit" href="{{ URL::to('myRoute') }}" class="btn btn-danger btn-mini">Delete</button>
{{ Form::close() }}

路线是:

Route::post('myRoute', ['as' => 'timeline.myRoute', 'uses' => 'TimelineController@myRoute']);

我想将一个整数传递给路线。我知道 - &gt; with()不像View :: make()那样工作。将变量传递给myRoute的有效方法是什么?任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

您可以使用route parameters从网址传输数据到控制器。

假设你有一个像http://yoursite.com/myRoute/id_number_here这样的网址。您的路线和控制器可能如下所示。

<强>路线

Route::post('myRoute/{id}', ['as' => 'timeline.myRoute', 'uses' => 'TimelineController@myRoute']);

<强>控制器

public function myRoute($id) {
    return $id;
}

答案 1 :(得分:1)

Jeemusu 90%正确,但在打开表单时忘记指定变量。

最终最终工作的是:

{{ Form::open(array('route' => array('timeline.myRoute', $id))) }}
      <button type="submit" href="{{ URL::route('timeline.myRoute', array($id))     }}" class="btn btn-danger btn-mini">Delete</button>
{{ Form::close() }}

使用Route.php中的路线:

Route::post('myRoute/{id}', ['as' => 'timeline.myRoute', 'uses' => 'TimelineController@myRoute']);

我控制器中的功能:

class TimelineController extends BaseController
{
     public function myRoute($id) {
          return $id;
     }
}

希望这有助于任何遇到我问题的人。

答案 2 :(得分:0)

尝试使用URL::route('timeline.myRoute', array(1));甚至URL::to('myRoute', array(1));

编辑:

你的路线是这样的:

Route::get('myRoute/{id}', ['as' => 'timeline.myRoute', 'uses' => 'TimelineController@myRoute']);

然后当你打电话给它时:

echo URL::route('timeline.myRoute', array($id));

您可以在控制器中访问:

class TimelineController extends BaseController
{
    public function myRoute($id) {
        echo $id;
    }
}