如何处理叶片幼虫

时间:2020-01-28 12:07:29

标签: php laravel

我的控制器功能是。我通过bidder数组传递了数据,但无法打印数组数据

public function bidders()
{
    $payments = \App\Models\Payment::all();
    $posts = Post::all()->where('user_id','=',Auth::user()->id);
    foreach ($posts as $post) {
        $postid = $post->id;
        $bidder[] = Bid::all()->where('post_id','=',$postid);
    }

    return view('user.student.student-post-bidders',compact('bidder','posts','payments'));
}

这是我从DB打印数据的刀片中的刀片。 如何打印数组?刀片中的数组打印索引

@php
    dd($bidder);
    $index = 0;
@endphp
@foreach($bidder as $bid)
    @foreach($posts as $post)
        @if($post->id == $bid[$index]['post_id'])
            <div class="row" >
                <!-- Dashboard Box -->
                <div class="col-xl-12" >
                    <div class="dashboard-box margin-top-0">
                        <!-- Headline -->
                            <div class="headline">
                                <h4><strong><span class="bg-danger text-center" style="margin-left: 46px">Your Post Title:</span>{{$bid[$index]->Post->title}}</strong></h4>
                            </div>
                            <div class="content">
                                <ul class="dashboard-box-list">
                                    <li>
                                        <!-- Overview -->
                                        <div class="freelancer-overview manage-candidates">
                                            <div class="freelancer-overview-inner">

                                                <!-- Avatar -->

                                                <div class="freelancer-avatar">
                                                    <div class="verified-badge"></div>

                                                    @if($bid[$index]->Tutor->profile_Image=='')

                                                        <img data-cfsrc="{{asset('asset/images/user-avatar-placeholder.png')}}" alt="" style="display:none;visibility:hidden;">

                                                    @else
{{--                                                            {{asset('storage/app/public/profileImages/' . $pic->profile_Image)}}--}}

                                                        <a href=""><img data-cfsrc="{{asset('storage/app/public/profileImages/' . $bid[$index]->Tutor->profile_Image)}}" alt="" style="display:none;visibility:hidden;"></a>
                                                    @endif
                                                </div>


                                                <!-- Name -->
                                                <div class="freelancer-name">

                                                    <h4><a href="">{{$bid[$index]->Tutor->name}}</a></h4>

                                                    <!-- Details -->
                                                    <strong><span>Subject:</span></strong>

                                                    @foreach($bid[$index]->Tutor->subject as $sub)

                                                        <strong><span>{{\App\Models\Subject::find($sub->pivot->subject_id)->subject}}</span></strong>

                                                    @endforeach
                                                    <!-- Rating -->
                                                    <div class="freelancer-rating">
                                                        <div class="star-rating" data-rating="{{$bid[$index]->Tutor->rating}}"></div>
                                                    </div>

                                                    <!-- Bid Details -->

                                                    <ul class="dashboard-task-info bid-info">
                                                        <li><strong id="{{ $bid[$index]->id}}">PKR:{{$bid[$index]->bid_price}}</strong><span>Fixed Price</span></li>
                                                        <li><strong>Days:{{$bid[$index]->days}}</strong><span>Delivery Time</span></li>
                                                    </ul>
                                                    <!-- Buttons -->
                                                    <div class="buttons-to-right always-visible margin-top-25 margin-bottom-0" onclick=" indexID({{$i}})">
                                                        <a href="#small-dialog-1"
                                                               onclick="moveprice({{ $bid[$index]->id}}), payment({{ $bid[$index]->id}})" class="popup-with-zoom-anim button ripple-effect"
                                                               @foreach($payments as $pay)  @if($bid[$index]->post_id == $pay->post_id) id="hide" @endif @endforeach><i class="icon-material-outline-check "></i> Accept Bid</a>
{{--                                                       @dd($bid->id)--}}
                                                        <a href="{{url('student-messages',$bid[$i]->id)}}" class=" button dark ripple-effect"><i class="icon-feather-mail"></i> Send Message</a>
                                                        <a  id="btn" class="button gray ripple-effect ico" onclick="removeBid({{$bid[$index]->id}})" title="Remove Bid" data-tippy-placement="top"><i class="icon-feather-trash-2"></i></a>
                                                    </div>
                                                </div>
                                            </div>

                                        </div>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>

                <span style="visibility: hidden">{{$i++}}</span>
            @endif

        @endforeach
        @php
            $index++;
        @endphp

    @endforeach

我运行代码时会发生错误 偏移1我需要在刀片中打印所有数据 如何明智地打印数组索引

enter image description here

2 个答案:

答案 0 :(得分:1)

您应该使用关系, 如果要显示投标者列表,则在投标者模型中

app / bidders.php

public function post()
{
    return $this->belongsTo('App\Post');
}

假设您在表结构中具有适当的标准,可以雄辩地进行映射。

然后您需要按以下方式更改出价工具功能

public function bidders()
{
    $payments = \App\Models\Payment::get();
    $bidders = Bidder::whereHas('post', function($post) {
        return $post->where('user_id','=',Auth::user()->id);
        //Provides a filter for bidders, post which are related to user
    })->with('post')->get();

    return view('user.student.student-post-bidders',compact('bidders', 'payments'));
}

如下图所示,刀片上的投标人应该只有一个循环。

Here is your answer why array is not appearing in blade check in comments for json_encode

@foreach($bidders as $bid)
    {{$bid->id}} //gives you bid parameters
    {{json_encode($bid->post)}} //this will get all the post details array/object is not printable on blade so encoded to json just for display purpose

    //suppose you need only name from post then
    {{$bid->post->name}};
@endforeach

由于急切的加载和更少的循环,这将缩短代码长度,并提高性能。还删除了诸如创建数组和维护索引以及刀片上是否有条件进行ID检查等内容。

就是这样。 祝您编码愉快!

答案 1 :(得分:0)

我认为您只需要重构代码), 首先使用$ bid-> {$ index}代替此$ bid [$ index]。您有集合,但可以将其用作数组 您是否要按post_id将出价者分组?

相关问题