如何将Request实例从控制器函数传递给另一个控制器函数

时间:2018-03-14 09:12:33

标签: php laravel laravel-5 laravel-5.3

我必须从一个控制器和另一个控制器调用一个函数。

public void onViewCreated() {
    new AsyncTask<Void, Void, Void>() {
        public Void doInBackground() {
            //Do your loading
        }

        public void onPostExecute(Void aVoid) {
            //Update display, play sound (on resumed fragment)
        }
    }.execute();
}

我必须传递Request to Application函数的实例。但是我不想通过getquickviews传递所有参数的问题请求,如果我在getquickviews函数上获取电子邮件,电话,姓名,但我只需要通过电话,电子邮件到应用程序功能。

7 个答案:

答案 0 :(得分:1)

更改此行

$report ->Applications($request->except('cl_e_start_date'));

$report ->Applications($request);

答案 1 :(得分:1)

尝试如下(不确定它会起作用):

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*/
}

答案 2 :(得分:0)

我认为这会奏效:

$report ->Applications($request->toArray());

答案 3 :(得分:0)

您可以保留所需的特定键和值,并在将其传递给函数之前从Ext.create('Ext.Panel', { fullscreen: true, layout: { type: 'vbox', align: 'stretch', pack: 'start' }, items: [ { xtype: 'panel', //flex: 1, //height: 100, layout: { type: 'hbox', align: 'stretch', pack: 'start' }, items: [ { xtype: 'radiofield', flex: 3, //width: '100%', label: 'afglngfsdlgkdslfkjsdlfkjdslkfjdslfkjsdlfkjsdlkfjsdlkfjsdlkfjdslkfjsdlkfjsdlkfjdslkfjldskfjsldkfjlsdkfjlsdkfjlsdkfjlsdkfjlkdsjflsdkjflsdkjflsdkjflsdkjflsdkjfklslfkdfjsldfk', labelAlign: 'right', labelWrap: true, labelWidth: 'auto', style: 'word-wrap: break-word;', name : 'color', value: 'red', checked: true }, { xtype: 'textfield', flex: 1, margin: '0 0 0 10' } ] } ] }); 删除其余部分。首先通过

将$ request转换为数组
$request

然后通过执行

删除不需要的密钥
$request->toArray()

然后将其传递给函数

unset($request['key-here']);

答案 4 :(得分:0)

将请求转入下一个方法或下一个级别调用的两种方法。

首先,您可以将Request class depenednacy注入该方法中作为示例:

public function store(Request $request)
{
    // Form Submits here
}

如果你想将$ request传递给其他方法,例如在插入后显示数据,你可以这样做:

public function showStore(Request $request)
{
    dd($request->get());
}

然后你可以从商店方法

调用这个方法
$this->showStore($request);

或者第二个是你可以使用request作为showStore或任何n级调用的方法。像这样:

public function showStore()
{
    dd(request()->all());
}

$this->showStore(); // You do not require any injection.

祝你好运!!!

答案 5 :(得分:0)

您需要创建一个新的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*/
 }

就是这样。 问候。

答案 6 :(得分:0)

为了能够创建自定义请求并使用它来引用控制器中的 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);

}

试试看,希望它有效。