@beatleboy

Laravel как сделать элегантный has many?

Есть модель, в ней прописана связь один ко многим через глобальную переменную код модели:
<?php namespace My\Trading\Models;

use Model;

/**
 * Model
 */
class Groups extends Model
{
    use \October\Rain\Database\Traits\Validation;

    /*
     * Validation
     */
    public $rules = [
    ];

    /*
     * Disable timestamps by default.
     * Remove this line if timestamps are defined in the database table.
     */
    public $timestamps = true;

    /**
     * @var string The database table used by the model.
     */
    public $table = 'trading_groups';

    public $hasMany = [
        'statistics' => ['\My\Trading\Models\Statistics', 'key' => 'groups_id'],
    ];
}

Результат я получаю так:
(new Groups)->hasMany('\My\Trading\Models\Statistics');

Но это на мой взгляд, не самый элегантный способ, подозреваю есть более красивое решение, иначе зачем прописывать связь в переменную $hasMany в модель? Или $hasMany играет роль только в October CMS?
Как получить результат связи из контроллера наиболее элегантным способом?
  • Вопрос задан
  • 374 просмотра
Решения вопроса 1
Denormalization
@Denormalization
С OctoberCMS не работал, но подозреваю что это их фишка указывать связи через $hasMany.
Все нормальные люди используют так:
public function statistics()
{
  return $this->hasMany(My\Trading\Models\Statistics::class, 'groups_id')
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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