Laravel-从集合中返回操纵值

时间:2019-03-29 10:56:12

标签: php laravel-5 methods collections return-value

我想操纵集合中的值!我收到的样式号为12345-D-002。我必须在“-”上对此进行分解,以获取样式号的第一部分。

模型订单中的收款代码:

public static function getPicklistToday($date)
    {
        $sql = "
            SELECT
                oxid_orderarticles.OXARTNUM as style,
                sum(oxid_orderarticles.OXAMOUNT) as ANZAHL,
                oxid_orderarticles.OXSELVARIANT,
                oxid_import.imported
            FROM oxid_orderarticles
            LEFT JOIN oxid_import
                ON oxid_import.oxid = oxid_orderarticles.OXORDERID
                WHERE DATE(oxid_import.imported) = :date
            GROUP BY oxid_orderarticles.OXARTNUM
            ORDER BY oxid_orderarticles.OXARTNUM ASC
        ";
        $pick = DB::select($sql,[':date'=>$date]);

        return $pick;
    }

这是一种方法,该方法也应以模型顺序分解从查询返回的“样式”:

    public function getParentStyle()
    {

        $parent = explode("-",$this->style);

        return $parent[0];
    }

OrderController中的方法:

    //------------------------
    public function today()
    {
        $today = Order::getPicklistToday(Carbon::now()->format('Y-m-d'));

        return view('order.today',compact('today'));

    }

今天视图的一部分。blade.php:

    @foreach($today as $pos)
    <tr>
      <td><i class="far fa-square"></i></td>
      <td><b>{{$pos->AMOUNT}}x</b></td>
      <td>{{$pos->getParentStyle()}}</td>
      <td>{{$pos->style}}</td>
      <td>{{$pos->OXSELVARIANT}}</td>
    </tr>
    @endforeach

我收到以下错误消息:
调用未定义的方法stdClass :: getParentStyle()(查看:/var/www/html/app/resources/views/order/today.blade.php)

getParentStyle()方法应如何使我的代码运行?

1 个答案:

答案 0 :(得分:0)

我建议在这里使用accessor。将此添加到您的Order模型中:

/**
 * Get the parent style of the order.
 *
 * @return string
 */
public function getParentStyleAttribute()
{
    $parent = explode("-", $this->style);

    return $parent[0];
}

现在您可以像这样访问值:

<td>{{ $pos->parentStyle }}</td>