doutu4335 2019-03-29 10:56
浏览 104

Laravel - 从集合中返回受控值

I would like to manipulate a value from a collection! I receive the stylenumber as 12345-D-002. I have to explode this on "-" to have the first part of the stylenumber.

Collection-Code from Model Order:

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;
    }

This is the method, which should explode the returned 'style' from the query, also in Model Order:

    public function getParentStyle()
    {

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

        return $parent[0];
    }

Method in the OrderController:

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

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

    }

Part of the view 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

I receive the following error message:
Call to undefined method stdClass::getParentStyle() (View: /var/www/html/app/resources/views/order/today.blade.php)

How should the method getParentStyle() look like to get my code running?

  • 写回答

1条回答 默认 最新

  • dsxz84851 2019-03-29 11:31
    关注

    I suggest to use an accessor here. Add this to your Order model:

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

    Now you can access the value like this:

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

报告相同问题?

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题