Как создать красноречивые отношения для этого запроса? - PullRequest
0 голосов
/ 29 ноября 2018

У меня был запрос в laravel, который выдает 1128 списков данных:

 $itemregistrations = DB::table('itemregistrations')
                     ->join('sections', 'itemregistrations.sectionid', '=', 'sections.sectionid')
                     ->join('categories', 'itemregistrations.categoryid', '=', 'categories.categoryid')
                     ->join('operasi', 'itemregistrations.operasiid', '=', 'operasi.operasiid')
                     ->select('itemregistrations.ItemRegistrationID','itemregistrations.name', 'itemregistrations.Nobadan', 'sections.sectionname', 'categories.categoryname', 'operasi.operasiname')
                     ->get();

Однако этот запрос загружается дольше ... Так что использование красноречивых отношений поможет ускорить время загрузки?Как связать их, используя отношения?

1 Элемент регистрации может быть в 1 разделе, и один раздел может быть зарегистрирован многими пунктами регистрации.это отношение один ко многим?

Отношение, которое я создал для раздела:

  class Section extends Authenticatable
{
protected $table = 'sections';
protected  $primaryKey = 'SectionID';
 /**
 * Get the user that have agama.
 */
public function itemregistration()
{
    return $this->hasMany('App\Itemregistration', 'ItemRegistrationID', 'SectionID');
}

}

Модель регистрации элементов:

 class Itemregistration extends Model 
{
protected  $primaryKey = 'ItemRegistrationID';
protected $fillable = ['Name', 'Contact_Number','Address','NoOfCans','Price'];
public $timestamps = false;


public function section()
{
    return $this->belongsTo('App\Section', 'ItemRegistrationID','SectionID');

}
}

Но я не могу получить какое-либо значение и получилошибка, когда:

 $itemregistration = App\Section::find(1)->itemregistration;
...