使用:: find但使用自定义where子句

时间:2016-03-17 19:20:22

标签: php laravel laravel-5 laravel-5.2

我使用::find查找业务但business_position我需要使用WHERE business_id =和WHERE id来找到正确的位置,下面的示例是可用的......

<?php
    $s = Stats::find(Auth::user()->id);
    $myJob = \App\Businesses::find($s->business_id);

    $matchedValues = ['business_id' => $s->business_id, 'id' => $s->business_position];
    $myPosition = \App\BusinessPositions::where($matchedValues)->get();
    ?>

使用$myPosition我使用

{{ $myPosition->pay_amount }}

在那条线上,它会抛出错误......

  

未定义的属性:   Illuminate \ Database \ Eloquent \ Collection :: $ pay_amount(查看:   C:\用户\达伦\ MyLavProject \资源\视图\页面\业务\ business.blade.php)

2 个答案:

答案 0 :(得分:1)

Laravel的get()会返回与您的查询匹配的集合结果(即使没有或只有一个,它将是Laravel模型实例的数组)。

您可以使用first()代替get()来获取第一个结果,也可以foreach通过get()提供的每个结果。这取决于您的应用程序是否允许每个business_id / id组合使用多个权限。

答案 1 :(得分:0)

$myPosition这是一个对象数组。

所以如果你需要结果:

{{ $myPosition[0]->pay_amount }}

@foreach($myPosition as $position)
  {{ $position->pay_amout }}
@endforeach

如果你不想使用其中任何一个:

将您的查询更改为:

$myPosition = \App\BusinessPositions::where($matchedValues)->first();

现在您可以使用:{{ $myPosition->pay_amount }}