2015-06-24 89 views
3

將Laravel的AuthController中的數組傳遞給auth.login視圖時遇到問題。試圖做的是從News模型中檢索數據並將其發送到視圖。我知道如何使用雄辯來檢索數據,從控制器傳遞到視圖是我的問題,因爲我無法看到Laravel呈現視圖的方式/位置。將數組從AuthController傳遞給Laravel 5中的登錄視圖

+0

我剛剛碰到同樣的問題。你有沒有找到解決方法? – michaeljdennis

回答

1

在控制器中返回數組時,將數組作爲第二個參數添加到視圖方法中。

return view('greetings', ['name' => 'Victoria']); // in controller 

那麼在你看來,你應該能夠訪問該變量$name這應該是等於Victoria

var_dump($name); // in view 

More in the documentation

+0

我以前試過這個.. AuthController似乎沒有把它傳遞給註冊視圖。不知道是否有錯誤或Auth/register.blade.php只是使用另一個控制器。但是哪一個? – nclsvh

0

我解決它通過傳遞變量通過在控制器重定向方法。

0

我不完全確定的目標是什麼在這裏,但你說:

我看不出如何/在哪裏Laravel被渲染視圖。

因此,要回答這個問題:

Laravel的AuthController其本身拉動其他幾個特點,一個是AuthenticatesUsers,另一個是RegistersUsers性狀AuthenticatesAndRegistersUsers拉。

在AuthenticatesUsers你會找到一個方法,像這樣:

/** 
* Show the application login form. 
* 
* @return \Illuminate\Http\Response 
*/ 
public function showLoginForm() 
{ 
    $view = property_exists($this, 'loginView') 
       ? $this->loginView : 'auth.authenticate'; 

    if (view()->exists($view)) { 
     return view($view); 
    } 

    return view('auth.login'); 
} 

有同樣的特質RegistersUsers類似的方法。

這是AuthController返回其視圖的地方。

如果您需要調整此行爲或使用某些數據返回視圖,則可以在控制器中覆蓋這些方法,如果這真的是您給定情況的最佳解決方案。

0

同時我找到了一個更好的方法來做到這一點。

您可以重寫AuthController.php中的showRegistrationForm()方法,並傳遞要在視圖中使用的數據。例:

public function showRegistrationForm() 
 
    { 
 
     $results = Model::all(); 
 
     return view('auth.register', ['results' => $results]); 
 
    }

相關問題