在Javascript/jQuery Laravel 5.1中获取当前用户

Cha*_*qas 2 javascript jquery laravel

如何在JS/Jquery中获取当前用户?我们可以在刀片中做到

{{Auth::user()}} 但它不会在.js文件中工作.

Adi*_*iri 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');
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在刀片文件中,我只是这样做,

    <script>alert("Hi " + user.name + ". Your email is " + user.email)</script>
    
    Run Code Online (Sandbox Code Playgroud)

是的,我甚至更喜欢这种方式,@罗宾说.是的,只有一个编辑他的答案,在laravel 5.1,Auth::user()不应该使用.它应该用作auth()->user() //->name or ->email or ->anything.


Rob*_*ads 6

您必须构建一个 API 并使用 AJAX 获取它。您不能在 javascript 文件中使用刀片。

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

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

并在您的 js 文件中使用用户 var。

编辑:

根据马克的评论,这确实更干净:

<script>
  var user = {!! auth()->user()->toJson() !!};
</script>
<!-- include your js file  here-->
Run Code Online (Sandbox Code Playgroud)