我在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;