2014-02-05 4 views
0

Привет, я хотел бы добавить другую таблицу, относящуюся к таблице часовых пользователей. Я не могу найти никакой информации об этом.Добавление другой таблицы в sentry2 в laravel

Я хотел бы иметь таблицу, которая хранит информацию о пользователе и последние действия, позволяет называть ее user_activity и связывать таблицу с помощью user_id.

Как добавить эту таблицу, чтобы ее можно было получить с помощью поставщика услуг часового обслуживания?

ответ

1

Вам не нужно думать о Sentry в этом случае таблицы Setry являются общими таблицы, как и любой другой, так что вы можете просто:

php artisan migrate:make create_user_activity_table 

И создать таблицу, связанные с пользователями:

<?php 

use Illuminate\Database\Migrations\Migration; 

class CreateUserActivityTable extends Migration { 

    public function up() 
    { 
     Schema::create('user_activity', function($table) { 
      $table->increments('id'); 
      $table->unsignedInteger('user_id'); 
      $table->string('<column_name>'); 
      $table->timestamps(); 
     }); 

     Schema::table('user_activity', function($table) { 
      $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); 
     }); 
    } 

    public function down() 
    { 
     Schema::drop('user_activity'); 
    } 

} 

EDIT

Чтобы использовать и создавать свои отношения, то вы можете опубликовать конфигурации часового:

php artisan config:publish cartalyst/sentry 

Редактировать app/config/packages/cartalyst/sentry/config.php и изменить

'model' => 'Cartalyst\Sentry\Users\Eloquent\User', 

Для вашей собственной модели (которая может быть app/models/User.php):

'model' => 'User', 

Но ваша модель будет иметь в настоящий простираться Sentry изначальных:

class User extends Cartalyst\Sentry\Users\Eloquent\User { 

    public function activities() 
    { 
     return $this->hasMany('UserActivity'); 
    } 

} 

И создать модель для новой таблицы:

class UserActivity extends \Eloquent { 

    protected $table = 'user_activity'; 

    public function user() 
    { 
     return $this->belongsTo('User'); 
    } 

} 

И теперь вы можете:

$user = User::findById(1); 

foreach($user->activities as $activity) 
{ 
    echo $activity->description; 
    echo $activity->user->name; 
} 
+0

Спасибо это прекрасно работало, теперь, чтобы иметь возможность получить доступ к этой информации мне нужно создать модель с уточнением отношение ? – arrowill12

+0

Да, вам нужно будет создать некоторые отношения. Просто отредактирован. –

+0

спасибо, это большая помощь! – arrowill12