2013-12-12 1 views
3

Я хочу добавить дополнительную колонку user_id на session стол.Laravel таблица сеансов добавить дополнительную колонку

Причина в том, что иногда появляется спамер, чтобы подписать фальшивую учетную запись, как только я знаю, что пользователь спамер, я хочу, чтобы вывести пользователя из системы, удалив запись сеанса.

Можно ли достичь этого?

ответ

2

Это миграция сессии схема:

Schema::create('sessions', function($table) 
{ 
    $table->string('id')->unique(); 
    $table->text('payload'); 
    $table->integer('last_activity'); 
    $table->integer('user_id')->unsigned(); //// ADD IT! 
}); 

Вы можете добавить любой столбец вы хотите на нем, Laravel не будет возражать.

Или вы можете создать новую миграцию и добавить ее в эту таблицу.

$table->integer('user_id')->unsigned(); 

Вы можете создать модель для него:

class SessionModel extends Eloquent { 

} 

И делать то, что вам нужно с ним:

$session = SessionModel::find(Session::getId()); 
$session->user_id = 1; 
$session->save(); 

Но если вы думаете о добавлении больше информации к полезной нагрузке , где Laravel хранит данные сеанса, хотя я думаю, что это возможно, вам придется копать немного больше в коде Laravel, чтобы сделать это.

+0

@ Антонио Карлос Рибейру спасибо. Я был в таком же состоянии. У меня был запрос, можете ли вы сообщить мне, что я планирую блокировать логин из одного места за раз, и поэтому я продвигаюсь с драйверами баз данных Auth/session. Поэтому логин с теми же учетными данными из другого местоположения показывает сообщение «Уже зарегистрировано в другом месте». Будет ли этот подход в порядке? Спасибо –

+0

Я получаю эту ошибку, когда когда-либо пытаюсь сохранить session'SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец «updated_at» в «списке полей» ' –

+0

@EdmundSulzanok, если вы создаете класс модели для сеанса, вам нужно чтобы включить «public $ timestamps = false;». В противном случае ваша схема должна включать '$ table-> timestamps();'. – Trojan404

Смежные вопросы