如何为此查询创建雄辩的关系?

时间:2018-11-29 04:36:17

标签: laravel-5 eloquent relationship

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

0 个答案:

没有答案