Laravel路由:如何将参数/参数从一个控制器传递给控制器

时间:2015-01-21 04:45:30

标签: laravel laravel-4

我有两个控制器,一个控制器调用另一个。我在Controller 1上完成了一些处理,并希望将数据传递给控制器​​2进行进一步处理。

控制器1:

public function processData() 
  {
    $paymenttypeid = “123”;
    $transid = “124”;
    return Redirect::action('Controller2@getData');
  }

控制器2:

public function getData($paymenttypeid, $transid ) 
{
}

错误:

Missing argument 1 for Controller2::getData() 

如何将控制器1中的参数传递给控制器​​2?

1 个答案:

答案 0 :(得分:1)

这真的不是一个很好的方法。

但是,如果您真的想要重定向并传递数据,那么如果它们是这样的话会更容易:

<?php

class TestController extends BaseController {

    public function test1()
    {
        $one = 'This is the first variable.';
        $two = 'This is the second variable';

        return Redirect::action('TestController@test2', compact('one', 'two'));
    }

    public function test2()
    {
        $one = Request::get('one');
        $two = Request::get('two');

        dd([$one, $two]);
    }

}

note 我不需要控制器方法中的参数。

有许多方法可以给猫皮肤涂抹,而你想要做的事情并不是很好。我建议首先查看如何使用服务对象,如this video中所述,以及无数的教程。

  

如果你不小心,很快,你的控制器会变得笨重。更糟糕的是,当你想从另一个控制器调用控制器方法时会发生什么?哎呀!一种解决方案是使用服务对象,将我们的域与HTTP层隔离开来。

     

-Jeffrey Way