У меня был запрос в 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;