检查laravel vue中的用户状态

时间:2018-09-22 07:36:20

标签: laravel vue.js

我有一个中间件,可以在其中检查用户状态是联机还是脱机,并且如果我使用刀片服务器,它可以正常工作,但是由于我正在使用vue.js components,所以我不知道如何将其传递给组件。

在刀片服务器上我可以使用:

@if($user->isOnline)
Online
@else
Offline
@endif

这是我的user模型:

public function isOnline()
{
  return Cache::has('user-is-online-' . $this->id);
}

现在我的问题是如何在组件中使用isOnline

PS:如果您需要我分享的任何代码,请告诉我

1 个答案:

答案 0 :(得分:1)

如果使用blade获取变量,则只能在页面加载时获取它。如果您的vue未写在刀片文件中,则您的vue无法在刀片中获取变量。

我建议您在创建的vue组件生命周期中使用axios或对Laravel进行一些API调用以获取变量。

// Vue
axios.get('example.com/api/users').then((res) => {
   this.users = res.data;
}

// Laravel
Route::get('/users', UserController@index);

// Controller
public function index() {
    return User::all()->map(function ($user) {
        $user->isOnline = $user->isOnline();
        return $user;
    });
}