将数组从一个控制器传递到另一个控制器。 Laravel

将数组从一个控制器传递到另一个控制器。 Laravel

问题描述:

我想从一个控制器传递数组到另一个控制器。但我不知道如何去做。 我有我的条例草案控制器,阵列:将数组从一个控制器传递到另一个控制器。 Laravel

public function store(Request $request, $id,$sid) 

{ 
$selected = array(); 
    if ($request->annual != 0) { 
     $selected['annual'] = $request->annual; 
    } 
    if ($request->registration != 0) { 
     $selected['registration'] = $request->registration; 
    } 
    if ($request->monthly != 0) { 
     $selected['monthly'] = $request->monthly; 
    } 
    if ($request->annual != 0) { 
     $selected['annual'] = $request->annual; 
    } 

return redirect()->route('invoice', [$sid]); 

} 

在这里,我已经通过路由传递$ SID到另一个控制器PdfController。

我的路线:

Route::get('sid/{sid}', '[email protected]')->name('invoice'); 

PdfController:

class PdfController extends Controller 
{ 

    public function invoice($sid) 
    { 

     $data = $this->getData(); 
     $date = date('Y-m-d'); 
     $student = Student::where('id',$sid)->first(); 

     $view = \View::make('layouts.bill',compact('data', 'date','student'))->render(); 
     $pdf = \App::make('dompdf.wrapper'); 
     $pdf->loadHTML($view); 
     return $pdf->stream('invoice'); 

    } 

如何我可以通过阵列从我BillController我PdfController?谁能帮我?

+1

传什么数组,为什么? – lagbox

+0

传递数组:选中$。 $ selected是从post方法获得的值。 BillController将其保存在数据库中,并且pdfcontroller可以处理所有打印内容。在这里,比尔控制器保存$选择,我希望从我的pdfcontroller打印这些选定的值。 – Anon

+1

如果您将它们保存到数据库中,请让其他控制器从数据库中将它们拉出来,或将它们存储在会话中并将它们拉出 – lagbox

您可以用不同的方式,

  1. 创建快取(Cache ::永远)变量,并将其传递。
  2. 用模型创建数据库临时表并传递它。
  3. 创建一个静态变量并首先设置您的变量并再次获取。

如果你能分辨出你需要通过哪些数据,我们可以帮助你更好。

+0

谢谢@Rys为我使用数据库表的答案。它工作正常! – Anon

+0

不客气。 – Rys