Laravel 路由:如何将 parameter/arguments 从一个控制器传递到另一个控制器
Laravel routing: how to pass parameter/arguments from one controller to 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?
这确实不是一个好方法。
但是,如果你真的想重定向和传递数据,那么如果它们是这样的会更容易:
<?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]);
}
}
注意我不需要控制器方法中的参数。
剥猫皮的方法有很多种,而您尝试做的并不是一个好方法。我建议首先查看如何使用服务对象,如 this video 和无数教程中所述。
If you're not careful, very quickly, your controllers can become unwieldy. Worse, what happens when you want to call a controller method from another controller? Yikes! One solution is to use service objects, to isolate our domain from the HTTP layer.
-Jeffrey Way
我有两个控制器,一个控制器调用另一个。我在控制器 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?
这确实不是一个好方法。
但是,如果你真的想重定向和传递数据,那么如果它们是这样的会更容易:
<?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]);
}
}
注意我不需要控制器方法中的参数。
剥猫皮的方法有很多种,而您尝试做的并不是一个好方法。我建议首先查看如何使用服务对象,如 this video 和无数教程中所述。
If you're not careful, very quickly, your controllers can become unwieldy. Worse, what happens when you want to call a controller method from another controller? Yikes! One solution is to use service objects, to isolate our domain from the HTTP layer.
-Jeffrey Way