如何将请求实例从一个控制器函数传递到另一个控制器函数
How to pass instance of Request from a controller function to another controller function
我必须从一个控制器调用另一个控制器的函数。
public function getquickviews(Request $request){
$report = new ReportController();
$report ->Applications($request->except('cl_e_start_date'));//it's not working its giving me error that it expect and instance of Request and passed array()
}
public function Applications(Request $request)
{
/*APP USAGE*/
}
而且我必须将请求实例传递给应用程序函数。但问题是我不想从 getquickviews 请求传递所有参数,就像我在 getquickviews 函数上收到电子邮件,phone,名称,但我只需要将 phone,电子邮件传递给应用程序函数.
更改此行
$report ->Applications($request->except('cl_e_start_date'));
至
$report ->Applications($request);
尝试如下(不确定它是否有效):
public function getquickviews(Request $request){
$returnedRequest = $request; // do whatever with your request here
return redirect()->route('SecondController.Applications', compact('returnedRequest'));
}
public function Applications(Request $request){
/*APP USAGE*/
}
我认为这会奏效:
$report ->Applications($request->toArray());
您可以保留所需的特定键和值,并在将其传递给函数之前从 $request
中删除其余部分。首先将 $request 转换为数组 by
$request->toArray()
然后通过
删除不需要的键
unset($request['key-here']);
然后传给函数
$report ->Applications($request);
将请求发送到下一个方法或任何下一级调用的两种方法。
首先,您可以将 Request class depenednacy 注入到该方法中,例如:
public function store(Request $request)
{
// Form Submits here
}
如果你想将 $request 传递给其他方法,例如在插入后显示数据,你可以这样做:
public function showStore(Request $request)
{
dd($request->get());
}
然后你可以在store方法中调用这个方法
$this->showStore($request);
或者其次是您可以使用请求作为进入 showStore 或任何 n 级调用的方法。像这样:
public function showStore()
{
dd(request()->all());
}
$this->showStore(); // You do not require any injection.
祝你好运!!!
您需要创建一个新的 Request 实例。
public function getquickviews(Request $request){
$report = new ReportController();
$content = new Request();
$content->something = $request->something;
$content->somethingElse = $request->somethingElse;
$report ->Applications($content);
}
然后您必须在以下时间收到它:
public function Applications(Request $request)
{
/*APP USAGE*/
}
就是这样。
问候。
为了能够创建自定义请求并因此使用它来引用控制器中的 post 方法,您需要首先启动一个 Request 实例,正如@martin Carrasco 如上所述:
下面的代码是 martin Carrasco 的延续
public function getquickviews(Request $request){
$report = new ReportController();
$content = new Request
([
'firstParam' => $request->param1,
'secondParam' => $request ->param2,
]);
$report ->Applications($content);
}
尝试一下,希望它有效。
我必须从一个控制器调用另一个控制器的函数。
public function getquickviews(Request $request){
$report = new ReportController();
$report ->Applications($request->except('cl_e_start_date'));//it's not working its giving me error that it expect and instance of Request and passed array()
}
public function Applications(Request $request)
{
/*APP USAGE*/
}
而且我必须将请求实例传递给应用程序函数。但问题是我不想从 getquickviews 请求传递所有参数,就像我在 getquickviews 函数上收到电子邮件,phone,名称,但我只需要将 phone,电子邮件传递给应用程序函数.
更改此行
$report ->Applications($request->except('cl_e_start_date'));
至
$report ->Applications($request);
尝试如下(不确定它是否有效):
public function getquickviews(Request $request){
$returnedRequest = $request; // do whatever with your request here
return redirect()->route('SecondController.Applications', compact('returnedRequest'));
}
public function Applications(Request $request){
/*APP USAGE*/
}
我认为这会奏效:
$report ->Applications($request->toArray());
您可以保留所需的特定键和值,并在将其传递给函数之前从 $request
中删除其余部分。首先将 $request 转换为数组 by
$request->toArray()
然后通过
删除不需要的键unset($request['key-here']);
然后传给函数
$report ->Applications($request);
将请求发送到下一个方法或任何下一级调用的两种方法。
首先,您可以将 Request class depenednacy 注入到该方法中,例如:
public function store(Request $request)
{
// Form Submits here
}
如果你想将 $request 传递给其他方法,例如在插入后显示数据,你可以这样做:
public function showStore(Request $request)
{
dd($request->get());
}
然后你可以在store方法中调用这个方法
$this->showStore($request);
或者其次是您可以使用请求作为进入 showStore 或任何 n 级调用的方法。像这样:
public function showStore()
{
dd(request()->all());
}
$this->showStore(); // You do not require any injection.
祝你好运!!!
您需要创建一个新的 Request 实例。
public function getquickviews(Request $request){
$report = new ReportController();
$content = new Request();
$content->something = $request->something;
$content->somethingElse = $request->somethingElse;
$report ->Applications($content);
}
然后您必须在以下时间收到它:
public function Applications(Request $request)
{
/*APP USAGE*/
}
就是这样。 问候。
为了能够创建自定义请求并因此使用它来引用控制器中的 post 方法,您需要首先启动一个 Request 实例,正如@martin Carrasco 如上所述:
下面的代码是 martin Carrasco 的延续
public function getquickviews(Request $request){
$report = new ReportController();
$content = new Request
([
'firstParam' => $request->param1,
'secondParam' => $request ->param2,
]);
$report ->Applications($content);
}
尝试一下,希望它有效。