2016-07-05 72 views
0

我无法将控制器的值传递给我的下一个控制器。 我用下面的语法: 在BillController:无法重新传递从控制器传递的值。 Laravel

return redirect('pdf')->with($sid); 

在路线:

Route::get('pdf', '[email protected]'); 

在我PdfController:

class PdfController extends Controller 
{ 

    public function invoice() 
    { 


     $student = Student::where('id',$sid)->first(); 
     foreach ($student->fees as $fee) { 

    $fees= $fee; 
} 

    } 

什么这里的问题是什么?谁能帮我?

回答

0

好有许多的方式来传递值:

1.会议的Flash消息https://laravel.com/docs/5.2/session

首先,你需要设置一个键和值与您的重定向:

// Method phpdoc - public function with($key, $value = null) 
return redirect('pdf')->with('sid', $sid); 

您可以通过\ Illuminate \ Http \ Session对象访问输入值:

// Have a look at the Session values - dd(Session::all()); 
$sid = Session::get('sid'); 

2.表单提交https://laravel.com/docs/5.2/requests

如果您发布的值,可以通过Request对象

public function invoice(Request $request) 
    { 
     $sid = $request->get('sid'); 

3访问它们。通过URL

routes.php文件

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

转接呼叫(增加$ SID进入路线):

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

控制器: 来获取值只是在控制器问。

public function index($sid) 
+0

它没有返回。当我试图返回值: $ id = $ request-> get('sid'); \t \t return $ id; 它显示一个没有返回任何值的空白页面。 – Anon

+0

对不起,我的坏。我认为它现在应该工作。我还添加了一些关于通过URL传递信息的信息,这可能也适用于您。 – Aine