Laravel数组而不是集合

时间:2018-02-09 15:09:43

标签: php laravel collections

在我的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返回一个数组

为什么这两种关系有不同的结果? (对不起格式化......)

1 个答案:

答案 0 :(得分:2)

正如您刚刚在评论中显示(然后进行了修改),您将其与get()一起使用。这就是为什么你得到一个集合而不是一个对象。

$division->company返回一个对象。然后,您使用$division->company->anotherRelationship()->get()运行另一个查询,该查询返回相关对象的集合。