You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.2中如何定义返回对象数组的函数返回类型(Laravel 10)

Laravel 10中返回交易记录列表的类型声明解决方案
  • 确认PHP版本:确保你的PHP版本在8.0及以上,Type[]这类数组返回类型语法是PHP 8.0才支持的。
  • 区分Eloquent集合与纯数组:
    如果函数返回的是Eloquent查询结果(比如Movement::all()),实际返回的是Illuminate\Database\Eloquent\Collection实例,而非纯Movement[]数组,此时应声明返回Collection类型:
    use Illuminate\Database\Eloquent\Collection;
    use App\Models\Movement;
    
    public function getAllMovements(): Collection
    {
        return Movement::all();
    }
    
    若使用PHP 8.1及以上,可通过泛型明确集合内元素类型:
    use Illuminate\Database\Eloquent\Collection;
    use App\Models\Movement;
    
    public function getAllMovements(): Collection<Movement>
    {
        return Movement::all();
    }
    
  • 若需返回纯模型数组:
    确保函数内部确实返回Movement实例数组(比如通过->all()提取集合内的模型),同时正确导入Movement模型避免命名空间错误:
    use App\Models\Movement;
    
    public function getAllMovements(): array
    {
        return Movement::get()->all();
    }
    
    注:PHP中Movement[]是array的语法糖,若要让IDE识别元素类型,可结合注释或泛型补充说明。

内容的提问来源于stack exchange,提问作者Tchokouani Edy Michel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:32:01