我正在尝试将请求变量从表单请求传递到另一个控制器(第二个控制器将在其中包含大量代码,因此我想使用它来保持主控制器清洁),但是当我尝试并且传递变量,没有任何反应,变量数据不会被发送。
这是我目前的代码:
class mainController extends Controller{
public function store(Request $request)
{
//validation
$otherClass = (new secondController)->createDBEntry($request);
}
}
class secondController extends Controller{
public function createDBEntry($request)
{
return $request;
}
}
但是,没有任何内容从$ request传递到secondController。如果我在secondController中回应一些东西它没有问题,所以我知道它被调用了,但是数据没有被发送过来。我在这里错过了什么?请记住,我对laravel相当新,我使用的是5.4。
答案 0 :(得分:0)
您的代码运行正常。你只是期待一种永远不会发生的行为,因为:
new secondController
实例化secondController
createDBEntry($request)
调用传递的方法createDBEntry
$request
返回的值存储在变量$otherClass
就是这样!没有更多的(并且将会)发生。如果您想查看$otherClass
的值(并查看您的代码是否有效),则必须将其返回:
class mainController extends Controller
{
public function store(Request $request)
{
$otherClass = new secondController
$otherClass->createDBEntry($request);
return $otherClass;
}
}
class secondController extends Controller
{
public function createDBEntry($arg)
{
return $arg;
}
}