【发布时间】:2019-11-27 19:27:38
【问题描述】:
一个 Laravel 关系在急切加载时显示为空。但是,当关系被正常访问时,它就可以工作。
class Student extends Model
{
use SoftDeletes;
public $incrementing = false;
protected $primaryKey = 'id'; // or null
protected $guarded = [];
public function document()
{
return $this->hasOne('App\Model\Document');
}
public function contact()
{
return $this->hasOne('App\Model\Contact');
}
}
当我使用以下时,合同关系返回 null。
Student::with('contact')->get()
但是,当我执行以下操作时它会起作用。这可能是什么原因?
$student = Student::findOrFail($id);
$contact = $student->contact;
【问题讨论】:
-
查看eager loading的示例
-
也许这段代码对你有帮助:
$students = Student::with(array('contact' => function($query) { $query->select('id','phone'); }))->get();