@FMW
@史沟飞 终于找到原因了,感谢2位大神的耐心指导呀。是topReplies()这个方法,写少了一个p,刚重新检查一遍代码才发现。非常感谢您们的帮助!的确是collection方法第一个参数的问题。Thanks!! :clap: :clap: :clap: :blush:
@FMW
报错信息如下:
{"message":"Invalid argument supplied for foreach()","status_code":500,"debug":{"line":348,"file":"\/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php","class":"ErrorException","trace":["#0 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php(348):
相关代码如下图:
实际上,就是不能正常获取话题的部分回复数据。教程中是能正常获取的,但是我的报错。
我测试接口时报错:
@FMW
完整版错误信息:
{"message":"Invalid argument supplied for foreach()","status_code":500,"debug":{"line":348,"file":"\/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php","class":"ErrorException","trace":["#0 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php(348): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'Invalid argumen...', '\/home\/vagrant\/C...', 348, Array)","#1 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php(235): League\Fractal\Scope->executeResourceTransformers()","#2 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/TransformerAbstract.php(162): League\Fractal\Scope->toArray()","#3 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/TransformerAbstract.php(131): League\Fractal\TransformerAbstract->includeResourceIfAvailable(Object(League\Fractal\Scope), Object(App\Models\Topic), Array, 'topReplies')","#4 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php(435): League\Fractal\TransformerAbstract->processIncludedResources(Object(League\Fractal\Scope), Object(App\Models\Topic))","#5 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php(411): League\Fractal\Scope->fireIncludedTransformers(Object(App\Transformers\TopicTransformer), Object(App\Models\Topic))","#6 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php(346): League\Fractal\Scope->fireTransformer(Object(App\Transformers\TopicTransformer), Object(App\Models\Topic))","#7 \/home\/vagrant\/Code\/larabbs\/vendor\/league\/fractal\/src\/Scope.php(235): League\Fractal\Scope->executeResourceTransformers()","#8 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Transformer\/Adapter\/Fractal.php(103): League\Fractal\Scope->toArray()","#9 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Transformer\/Factory.php(77): Dingo\Api\Transformer\Adapter\Fractal->transform(Object(App\Models\Topic), Object(App\Transformers\TopicTransformer), Object(Dingo\Api\Transformer\Binding), Object(Dingo\Api\Http\Request))","#10 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Http\/Response.php(135): Dingo\Api\Transformer\Factory->transform(Object(App\Models\Topic))","#11 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Routing\/Router.php(554): Dingo\Api\Http\Response->morph('json')","#12 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Routing\/Router.php(523): Dingo\Api\Routing\Router->prepareResponse(Object(Dingo\Api\Http\Response), Object(Dingo\Api\Http\Request), 'json')","#13 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Http\/Middleware\/Request.php(126): Dingo\Api\Routing\Router->dispatch(Object(Dingo\Api\Http\Request))","#14 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(114): Dingo\Api\Http\Middleware\Request->Dingo\Api\Http\Middleware\{closure}(Object(Dingo\Api\Http\Request))","#15 \/home\/vagrant\/Code\/larabbs\/vendor\/barryvdh\/laravel-debugbar\/src\/Middleware\/InjectDebugbar.php(58): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))","#16 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(149): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle(Object(Dingo\Api\Http\Request), Object(Closure))","#17 \/home\/vagrant\/Code\/larabbs\/vendor\/fideloper\/proxy\/src\/TrustProxies.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))","#18 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(149): Fideloper\Proxy\TrustProxies->handle(Object(Dingo\Api\Http\Request), Object(Closure))","#19 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php(30): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))","#20 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Dingo\Api\Http\Request), Object(Closure))","#21 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php(30): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))","#22 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Dingo\Api\Http\Request), Object(Closure))","#23 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))","#24 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Dingo\Api\Http\Request), Object(Closure))","#25 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php(46): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))","#26 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(149): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Dingo\Api\Http\Request), Object(Closure))","#27 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(102): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Dingo\Api\Http\Request))","#28 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Http\/Middleware\/Request.php(127): Illuminate\Pipeline\Pipeline->then(Object(Closure))","#29 \/home\/vagrant\/Code\/larabbs\/vendor\/dingo\/api\/src\/Http\/Middleware\/Request.php(103): Dingo\Api\Http\Middleware\Request->sendRequestThroughRouter(Object(Dingo\Api\Http\Request))","#30 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(149): Dingo\Api\Http\Middleware\Request->handle(Object(Dingo\Api\Http\Request), Object(Closure))","#31 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Pipeline.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))","#32 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php(102): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))","#33 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure))","#34 \/home\/vagrant\/Code\/larabbs\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))","#35 \/home\/vagrant\/Code\/larabbs\/public\/index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))","#36 {main}"]}}
@JasonLWF $this->replies()->limit(5)
应该返回的是一个QueryBuilder对象,你要返回一个Collection的话就$this->replies->limit(5)->get()
咯。
@FMW
@史沟飞 终于找到原因了,感谢2位大神的耐心指导呀。是topReplies()这个方法,写少了一个p,刚重新检查一遍代码才发现。非常感谢您们的帮助!的确是collection方法第一个参数的问题。Thanks!! :clap: :clap: :clap: :blush:
推荐文章: