Laravel Eloquent Rlationships - PullRequest
       5

Laravel Eloquent Rlationships

0 голосов
/ 24 августа 2018

У меня есть таблица users.Содержит role_id.Администратор может создавать пользователей.Созданные администратором пользователи будут храниться в таблице users, где также хранится администратор.Теперь я хочу получить пользователей, созданных администратором.Каким должен быть дизайн базы данных?

Ответы [ 4 ]

0 голосов
/ 24 августа 2018

Создание пользовательской миграции должно быть похоже на

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('created_by')->unsignedInteger()->nullable();
        $table->timestamps();
    });
}

Теперь вы можете сохранить как ноль или назначить идентификатор пользователя для made_by

$user = new User();
$user->created_by = Auth::id(); //if not logged in you can set null
$user->save();

вы можете получить пользователей таким образом

$user = DB::table('users')->where('created_by', Auth::id())->first(); // to get one record

$users = DB::table('users')->where('created_by', Auth::id())->get(); // to get all records
0 голосов
/ 24 августа 2018

Я предложу вам добавить имя столбца типа enum 'type', в котором вы должны указать тип пользователя (например, admin, member). Тогда ваш запрос будет

SELECT * FROM users WHERE type='admin'
0 голосов
/ 24 августа 2018

Добавьте поле created_by_id в таблицу users путем миграции:

$table->unsignedInteger('created_by_id');

В вашей модели пользователей добавьте:

public function createdBy()
{
    return $this->belongsTo(User::class);
}

Сохраните пользователя:

public function store($request)
{
    $user = new User();
    // Other stuff
    $user->created_by_id = Auth::id();
    $user->save();
}

Чтобы использовать это:

$user = User::find(5);
$admin = $user->createdBy;
0 голосов
/ 24 августа 2018

Вам не нужна другая таблица для извлечения данных.Прочитайте некоторую документацию относительно sql и получите из пользовательских таблиц.так должно быть так:

'Select * from users';//this is the simple query to fetch all users from table name users. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...