2015-09-04 66 views

回答

8

按望着標準和方式最JavaScript的模板引擎的工作,我更願意做這樣的事情:

  1. 安裝laracasts/utilities使用composer require laracasts/utilities
  2. 在控制器的方法,從那裏您正在返回的看法,我會讓它看起來像這樣:

    public function returnUser(){ 
        $user = Auth::user(); 
        Javascript::put([ 'user.name' => $user->name, 'email' => $user->email ]); 
        return view('my.user.js'); 
    } 
    
  3. 在刀片文件,我只想做,

    <script>alert("Hi " + user.name + ". Your email is " + user.email)</script> 
    

,是的,我甚至會喜歡的方式,@Robbin說。而且,對於他的回答只是一個更多的編輯,在laravel 5.1中,不應該使用Auth::user()。它應該用作auth()->user() //->name or ->email or ->anything

+0

True!相反,添加。 – Roboroads

+0

'Javascript :: put([])'會把這些值放在每個js文件中? –

+1

Javascript :: put([])會將變量放在窗口範圍內,以便您可以在該特定路線上訪問它們。如果你想要所有路由上的變量accessable,你必須把javascript :: put([])放在一個基礎控制器 – oBo

1

您必須構建一個API並通過AJAX獲取它。你不能在JavaScript文件中使用刀片。

或者,在模板的<head>中,放置。

<script> 
    var user = {!! json_encode((array)auth()->user()) !!}; 
</script> 
<!-- include your js file here--> 

並在您的js文件中使用用戶var。

+0

雄辯的模型有一個toJson()方法。使用它會不會更清楚? –

+0

用戶將包含什麼?我如何訪問js中的用戶名?像用戶名? –

+0

user.name,user.email等 – Roboroads