【问题标题】:passing in arguments to a restful controller in laravel将参数传递给 laravel 中的 restful 控制器
【发布时间】:2013-10-07 09:04:53
【问题描述】:

我刚刚开始在 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');

我能够访问这两个 URL,因此我的路由工作正常。使用这种路由和控制器方法时,如何将参数传递给该控制器?

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    当你在 Laravel 中定义一个 restful 控制器时,你可以通过 URI 访问操作,例如with 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

    【讨论】:

    • 我可以使用 mc/table 访问 rout。 get 是让 laravel 知道为动作 get 调用它的原因,因此让它变得平静。当我将另一个字符串传递到 url ex. mc/table/mytable 它在​​控制器中查找“mytable”作为函数。这就是我遇到的问题。我想知道是否可以使用这种路由方式将参数传递给控制器​​。
    • 这看起来你使用的是 laravel 3。laravel 4 可能会有一些不同。
    • 没有。该示例是使用 Laravel 4 制作的,我认为 L3 没有太大区别。你可以传递参数很奇怪。也许尝试新安装 L4。
    • 我的代码中没有 protected static $restful = true; 我认为这在 laravel 4 中是没有必要的。
    • 啊我猜它最终成为我函数中的代码!它现在正在工作。谢谢!
    猜你喜欢
    • 2020-11-30
    • 1970-01-01
    • 2016-05-16
    • 2017-01-12
    • 2014-04-04
    • 2012-09-20
    • 2018-07-14
    相关资源
    最近更新 更多