在Laravel4中通过url传递参数不起作用

时间:2014-01-22 14:04:49

标签: php laravel-4

可以使用控制器通过->with()将参数传递给页面,例如

public function two(){

 return View::make('page2')->with('id', 2);

}

现在$id可以在page2.blade.php

中访问

但是我想通过url传递参数,如下面的方式

routes.php文件

<?php
Route::get('page1', 
array(
'uses' => 'pagecontroller@page1'

));

Route::get('page2/{$id}',
 array(
 'uses'=>'pagecontroller@page2'
 ));

pagecontroller.php

<?php

class pagecontroller extends BaseController{


  public function page1(){

   return View::make('page1');

  }

  public function page2($id){

    return "ID : $id";

  }

page1.blade.php

<p>This Is Page1</p>

<a href="{{action('pagecontroller@page2', array('id'=>1)  )}}">Page2</a>

它显示错误:Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException

哪里出错?

1 个答案:

答案 0 :(得分:1)

你的路线上有一点错字。参数定义时没有“$”前缀。

Route::get('page2/{$id}',

应该是

Route::get('page2/{id}',

请在更改routes.php文件后记得composer dump-autoload

您可能需要花点时间查看有关路由参数的文档 http://laravel.com/docs/routing#route-parameters