2017-01-02 40 views
1

我必须将多个表信息传递给Laravel。我总是这样做:将信息从多个表传递给模板使用Laravel

public function get_view(){ 
     $myinfo = Table::where('id',Auth::user()->id)->get(); 
     return view('auth.view')->with('myinfo',$myinfo); 
    } 

我需要从其他表传递信息。函数“with”只允许我传递一个表。有没有办法做到这一点?

回答

1

选项1:

return view('auth.view')->with('myinfo', $myinfo)->with('anotherVar', $anotherVar); 

选项2:

$var1, $var2; 
return view('auth.view', compact('var1', 'var2')); 

其转换为(选项3):

$var1, $var2; 
return view('auth.view', ['var1' => $var1, 'var2' => $var2]); 
1

可以传递一个数组具有多个表作为第二个参数:

public function get_view() { 
    $myinfo = Table::where('id', Auth::user()->id)->get(); 
    return view('auth.view', [ 
     'myinfo1' => $table1, 
     'myinfo2' => $table2, 
    ]); 
} 

此外,您可以使用多个with()

1

有一种方法紧凑。你的例子:

public function get_view(){ 
    $myinfo = Table::where('id',Auth::user()->id)->get(); 
    $myinfo2 = ... 
    return view('auth.view', compact('myinfo', 'myinfo2')); 
}