Я пытаюсь добавить функцию на свой сайт, которая показывает количество зарегистрированных пользователей и зарегистрированных пользователей (также показывая имена зарегистрированных пользователей, но я могу выяснить, что часть). В настоящее время я прочитал, что мне нужно изменить файл /config/Session.php «driver» для использования database
вместо file
('driver' => env('SESSION_DRIVER', 'database'),
). Я нашел статью, которая использует Sentry для выполнения этого (http://laravel.io/forum/03-03-2014-sentry-3-users-online), однако я бы предпочел сделать это, не требуя сторонних файлов. Тем не менее я использовал свою информацию в качестве отправной точки для использования модели для сеанса.Laravel 5.0 показывается зарегистрированным пользователям и зарегистрированным пользователям
Что касается проблем, во-первых, я не могу фактически начать сеанс, чтобы начать сохранение в таблице сеансов моей базы данных даже после изменения Session.php, создания таблицы и ее миграции. Он по-прежнему сохраняется в файлах в/storage/framework/session/(я все еще могу войти в систему и отобразить информацию о сеансе с помощью Session::all()
).
mysql> select * from sessions;
Empty set (0.00 sec)
Второй вопрос, я не знаю, как мне создать сеанс, если один уже не существует, устроенный в его файл, нет никакого способа, чтобы создать (если кто-то просто открывает сайт и, таким образом, , гость), а также не регистрировать пользователя при выходе из системы (удалите свой зарегистрированный статус, а также их user_id, чтобы они были видны как гость).
Вот мой текущий файл OnlineUser.php:
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
// use Sentry;
use Session;
use Auth;
class OnlineUser extends Model {
/**
* {@inheritDoc}
*/
public $table = 'sessions';
/**
* {@inheritDoc}
*/
public $timestamps = false;
/**
* Returns all the guest users.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeGuests($query)
{
return $query->whereNull('user_id');
}
/**
* Returns all the registered users.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeRegistered($query)
{
return $query->whereNotNull('user_id')->with('user');
}
/**
* Updates the session of the current user.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeUpdateCurrent($query)
{
return $query->where('id', Session::getId())->update(array(
'user_id' => !empty(Auth::user()) ? Auth::user()->id : null
));
}
/**
* Returns the user that belongs to this entry.
*
* @return \Cartalyst\Sentry\Users\EloquentUser
*/
public function user()
{
return $this->belongsTo('\App\User');
//return $this->belongsTo('Cartalyst\Sentry\Users\EloquentUser'); # Sentry 3
// return $this->belongsTo('Cartalyst\Sentry\Users\Eloquent\User'); # Sentry 2
}
}
Если кто имеет какую-либо информацию, чтобы помочь мне в решении этих проблем, я был бы очень благодарен. Если вам нужна дополнительная информация, дайте мне знать, и я отвечу, когда смогу.
Спасибо.
Извините за поздний ответ; С тех пор я работаю над другими частями. Это заставило базу данных работать ... Теперь мне просто нужно выяснить, как получить идентификатор пользователя из сеанса ИЛИ сохранить идентификатор пользователя в таблице сеанса, который, похоже, не хочет делать. –