dongtan3395 2015-08-28 19:06
浏览 43
已采纳

laravel 5 collection pull方法什么都不打印

my controller method returns this array, I know data is being returned

return view('bill')->with('itemarray',Menu::where('itemname','Apple Pie')->get());

my view is suppose to act on it like this but the print_r method prints the array but the td of the table has nothing in it and I am not getting an error

@if(isset($itemarray))
<table>
<tr>
<td>{{ $itemarray->pull('itemname') }} <!-- this prints nothing --> </td>
<td> {{ $itemarray->pull('itemprice') }} <!-- this prints nothing --> </td> 
</tr>  
</table>
<p>  {{  print_r($itemarray) }} <!-- this prints ok --> </p>
@endif
  • 写回答

1条回答 默认 最新

  • duanli3277 2015-08-28 19:34
    关注

    The underlying problem here is that get() always returns a collection. Even if your query only has one or zero results. It's recommended to use first() if you expect only one result:

    return view('bill')->with('item',Menu::where('itemname','Apple Pie')->first());
    

    This means that you will then be dealing with a model in your view, so:

    @if(isset($item))
    <table>
    <tr>
    <td>{{ $item->itemname }}</td>
    <td> {{ $item->itemprice }}</td> 
    </tr>  
    </table>
    @endif
    

    I also suggest you change isset() to !empty() as this will also check for null (if no records match)

    @if(!empty($item))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号