在我的Laravel应用程序中,我有这个模型:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Division extends Model
{
protected $fillable = [
'name','company_id', 'location_id'
];
protected $casts = [
'name' => 'string',
'company_id' => 'integer',
'location_id' => 'integer'
];
public function company()
{
return $this->belongsTo(Company::class);
}
public function location()
{
return $this->belongsTo(Location::class);
}
}
$division->company
返回一个集合
$division->location
返回一个数组
为什么这两种关系有不同的结果? (对不起格式化......)
答案 0 :(得分:2)
正如您刚刚在评论中显示(然后进行了修改),您将其与get()
一起使用。这就是为什么你得到一个集合而不是一个对象。
$division->company
返回一个对象。然后,您使用$division->company->anotherRelationship()->get()
运行另一个查询,该查询返回相关对象的集合。