【发布时间】:2016-07-07 18:00:15
【问题描述】:
我们有两种模型和方法历史:
class Employment_request extends Model {
protected $table = 'employment_requests';
// some code here
public function history(){
return $this->hasMany('App\Employment_history');
}
}
class Employment_history extends Model {
protected $table = 'employment_history';
// some code
}
让我们创建就业请求的实例:
$r = Employment_request::find(28)
在这种情况下,在创建就业请求实例时会请求方法历史数据。不是吗?
- 对象占用更多内存
- 需要更多时间来创建它
- 创建对象后添加的历史数据不可访问
因为当我添加新的历史记录时:
Employment_history::create([
'user_id' => 17,
'employment_request_id' => 28,
'change' => '? Stefanka'
]);
及调用方法:
$r->history;
新记录不会随集合返回,但在重新创建对象后会返回。 但是当我打电话时:
$r->history()->get()
我不需要重新创建它来获取新数据。
它在内部是如何运作的? 在修补程序控制台中测试。
【问题讨论】:
-
In this case method history data is requested when instance of Employment_request is created. Isn't it?,只有当你打电话给history时才可用;