我刚开始在laravel 4中实现restful控制器。我不明白在使用这种路由方式时如何将参数传递给控制器中的函数。
控制器:
class McController extends BaseController
{
private $userColumns = array("stuff here");
public function getIndex()
{
$apps = Apps::getAllApps()->get();
$apps=$apps->toArray();
return View::make('mc')->nest('table', 'mc_child.table',array('apps'=>$apps, 'columns'=>$this->userColumns));
}
public function getTable($table)
{
$data = $table::getAll()->get();
$data=$data->toArray();
return View::make('mc')->nest('table', 'mc_child.table',array('apps'=>$apps, 'columns'=>$this->userColumns));
}
}
路线:
Route::controller('mc', 'McController');
我能够访问这两个网址,因此我的路由工作正常。使用这种路由和控制器方法时,如何将参数传递给此控制器?
答案 0 :(得分:4)
在Laravel中定义一个restful控制器时,你可以访问URI的动作,例如Route::controller('mc', 'McController')
与mc/{any?}/{any?}
匹配等。对于您的函数getTable
,您可以使用路由mc/table/mytable
访问,其中mytable
是该函数的参数。
修改强> 您必须启用restful功能,如下所示:
class McController extends BaseController
{
// RESTFUL
protected static $restful = true;
public function getIndex()
{
echo "Im the index";
}
public function getTable($table)
{
echo "Im the action getTable with the parameter ".$table;
}
}
通过该示例,当我转到路线mc/table/hi
时,我得到输出:Im the action getTable with the parameter hi
。