【问题标题】:Eloquent resulting single search result as array not collection雄辩的结果单一搜索结果作为数组而不是集合
【发布时间】:2019-12-26 14:23:25
【问题描述】:

在某些情况下,雄辩的结果是单个数组而不是集合。尽管 dd 将其显示为具有单个条目的集合。

例如我在控制器中有一个查询:

$pg = Page::with('getPanels')->where('slug',$slug)->get();

这将返回单个结果并且工作正常,因此我将其传递给刀片模板。我的完整功能是

$pg = Page::with('getPanels')->where('slug',$slug)->get();
return view('front.page',['pg' => $pg]);

他的模板一被带进来,它就会倒塌

if (!is_null($pg->headImage))

{$img = assets('images/pages')."/".$pg->headImage;}

我会得到的

此集合实例上不存在属性 [headImage]。

如果我将行更改为

if (!is_null($pg[0]['headImage']))

它将继续正常。这当然很痛苦,因为我更愿意使用 $pg->headImage。

有人可以请教我吗?

【问题讨论】:

    标签: laravel laravel-5 eloquent laravel-blade


    【解决方案1】:

    我已对此进行了排序,希望对其他人有所帮助。

    如果我使用

    $pg = Page::with('getPanels')->where('slug',$slug)->first();
    

    这将只是一个结果(自然),因此

    $pg->headImage
    

    会如愿以偿

    $pg[0]['headImage']
    

    但是如果我将 eloquent 改为 get(0 到 first() (仍然只有一个结果)

    $pg = Page::with('getPanels')->where('slug',$slug)->first();
    

    我可以使用 $pg->headImage 或者我想要的字段。

    【讨论】:

      猜你喜欢
      • 2020-08-04
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 2011-07-14
      • 1970-01-01
      • 2020-09-04
      • 2015-12-18
      相关资源
      最近更新 更多