使用Laravel将信息传递给多个表中的模板

时间:2017-01-02 17:17:36

标签: php laravel eloquent

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

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

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

3 个答案:

答案 0 :(得分: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 :(得分:1)

您可以传递一个包含多个表的数组作为第二个参数:

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

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

答案 2 :(得分:1)

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

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