У Ларавела много неработающих в красноречивых отношениях - PullRequest
0 голосов
/ 23 января 2019

Каждая строка в «log» содержит ключ (dec_key), который используется пользователями при авторизации в системе. Таблица «Ключи» содержит ключи (dec_key) и идентификатор пользователя (user) Таблица «Пользователи» содержит идентификаторы пользователей (id) и их логины (логин)

Я пытаюсь 'создать форму со столбцами:

: log.id: keys.dec_key: keys.comment: users.login:

но что-то не так в моем коде или структуре базы данных.

Это моя структура базы данных

CREATE TABLE "log" (
"id" integer not null primary key autoincrement, 
"dec_key" integer not null) 

CREATE TABLE "keys" (
"id" integer not null primary key autoincrement, 
"dec_key" integer not null, 
"comment" varchar not null, 
"user" integer not null, foreign key("dec_key") references  "log"("dec_key") on delete cascade)

CREATE TABLE "users" (
"id" integer not null primary key autoincrement, 
"login" varchar not null, 
foreign key("id") references "keys"("user") on delete cascade)

И мой код

// LogsController.php

class LogsController extends Controller
{
public function index (Request $request) {
    $req = Log::with('comment:dec_key,comment','keyusers:*');
}
}

// log.php

class Log extends Model
{
protected $table = 'log';

public function comment () {
    return $this->hasOne('App\Key', 'dec_key', 'dec_key');
}

public function keyusers()
{
    return $this->hasManyThrough('App\Users', 'App\Key', 'user', 'id');
}
}

// Key.php

class Key extends Model
{
protected $table = 'keys';

public function userskeys()
{
    return $this->belongsTo('App\Log','id','user');
}

public function users()
{
    return $this->hasMany('App\Users','id','user');
}
}

// Users.php

class Users extends Model
{
protected $table = 'users';

public function keys () {
    return $this->belongsTo('App\Key', 'user', 'id');
}

public function users()
{
    return $this->belongsTo('App\Log','user','id');
}
}

метод keyusers возвращает пустой массив. Пожалуйста, помогите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...