mrmammoth
@mrmammoth
PHP fullstack

Как создать запрос с подзапросом в Laravel Eloquent?

Есть таблицы

log

id->index
dec_key
status

keys

id->index
dec_key->index relation с log->dec_key
user
comment

users

id->index relation с keys->user
login

У меня не получается создать используя Eloquent-модель запрос с подзапросом, чтобы выводились колонки:

log->dec_key | users->login | keys->comment | log->status

Имеющийся сейчас запрос выводит log->dec_key | keys->user | keys->comment | log->status

контроллер:
namespace App\Http\Controllers;

use App\Log;
use App\User;

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


модели:
namespace App;

use Illuminate\Database\Eloquent\Model;

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

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

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

namespace App;

use Illuminate\Database\Eloquent\Model;

class Key1 extends Model
{
    protected $table = 'keys';
}

namespace App;

use Illuminate\Database\Eloquent\Model;

class Key extends Model
{
    public function user()
    {
        return $this->hasOne('App\User', 'id', 'user');
    }
}

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function keys () {
        return $this->hasMany('App\Key', 'user', 'id');
    }
}

Прошу совета
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы