我有一个中间件,可以在其中检查用户状态是联机还是脱机,并且如果我使用刀片服务器,它可以正常工作,但是由于我正在使用vue.js components
,所以我不知道如何将其传递给组件。
在刀片服务器上我可以使用:
@if($user->isOnline)
Online
@else
Offline
@endif
这是我的user
模型:
public function isOnline()
{
return Cache::has('user-is-online-' . $this->id);
}
现在我的问题是如何在组件中使用isOnline
?
PS:如果您需要我分享的任何代码,请告诉我
答案 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;
});
}