В этом коде я хотел бы получить время, когда пользователь присоединился и ушел, и сохранить его в БД.Что происходит, когда я получаю одинаковое значение как в «соединенных», так и в «левых» таблицах.Как это исправить, чтобы в нем хранились разные значения?
Schema::create('user_info', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('ip');
$table->string('joined');
$table->string('left');
});
в LoginController
public function logout() {
$left = now();
auth()->logout();
session()->forget('name');
session()->put('left', $left);
return redirect('/');
}
в модели
protected $fillable = ['ip','name', 'joined'];
const CREATED_AT = 'joined';
const UPDATED_AT = 'left';
public static function storeUser() {
UserInfo::create([
'ip' => Request::ip(),
'name' => Auth::user()->name,
'joined' => now(),
]);
}
BroadcastServiceProvider.php
Broadcast::channel('chat', function ($user) {
$ip = Request::ip();
$time = now();
if (auth()->check() && !session()->has('name')) {
UserInfo::storeUser();
session()->put('name',$user->name);
return [
'id' => $user->id,
'ip' => $ip,
'name' => $user->name,
'joined' => $time,
];
}
});
Это изображение иллюстрирует поведение после некоторых изменений, которые вы увидите ниже.Это показывает, что данные с ключом 'left' на данный момент идут не предполагаемому пользователю, а первому пользователю с таким именем.
Продолжение этого вопроса здесь Как переопределить этот код, чтобы он правильно вставлял данные?