2016-02-27 94 views
1

相关的模型,我发现很难将相关模型一起使用HTML表格。我试图想出的系统是一个招投标系统。多个用户可以对产品进行出价,也可以对多个产品进行出价。所有者查看其产品时,应根据产品名称对其进行分组。分组使用Laravel 5.1刀片和HTML

让我们假设某个用户的帖子2级的产品,和其他4个用户对这些产品,用户的投标应在产品名称进行分组竞标,但我什么,我得到的是每个IT部门在不同的表。 这是我的看法刀片:

<DIV style="color:#0000FF"> 
        @foreach($myBuyers as $myQuotedProducts) 
          @foreach($product as $products) 
           @if($products->id === $myQuotedProducts->product_id) 
            @if(count($products->productname) > 1) 
           <div style="color:#0000FF"> 
            <p>{!! $products->productname !!}</p> 
            <TABLE> 
            <TH>SELECT</TH><TH>PRODUCT</TH><TH>COMMENT</TH><TH>PRICE</TH> 
             <TR><TD>{!! Form::radio('selectedButton' .$myQuotedProducts->product_id, $myQuotedProducts->product_id) !!}</TD><TD>{!! $products->productname !!}</TD><TD>{!! $myQuotedProducts->comments !!}</TD><TD>{!! $myQuotedProducts->price !!}</TD></TR> 
            </TABLE> 
           </div> 
           @else 
            <div style="color:#0000FF"> 
            <p>{!! $products->productname !!}</p> 
            <TABLE> 
            <TH>SELECT</TH><TH>PRODUCT</TH><TH>COMMENT</TH><TH>PRICE</TH> 
             <TR><TD>{!! Form::radio('selectedButton' .$myQuotedProducts->product_id, $myQuotedProducts->product_id) !!}</TD><TD>{!! $products->productname !!}</TD><TD>{!! $myQuotedProducts->comments !!}</TD><TD>{!! $myQuotedProducts->price !!}</TD></TR> 
            </TABLE> 
           </div> 
           @endif 
           @endif 
          @endforeach 
         @endforeach 

       </DIV> 

这是我的控制器:

public function index() 
    { 
     $product = Product::all(); 
     $myBuyers = BiddingComments::where('user_id', '=', Auth::user()->id)->orderBy('price', 'DESC')->get(); 

     return view('buyers.index') 
     ->with('product', $product) 
     ->with('myBuyers', $myBuyers); 
    } 

敬请参阅所附截图要非常熟悉什么我想达到什么我得到。

这就是我想要达到的目标:

This is what I want to achieve

这就是我得到现在这是不对的

enter image description here

回答

1

我不完全知道这是什么你想要的,但这里是我想出了

@foreach($product as $products) 
    <div style="color:#0000FF"> 
     <p>{!! $products->productname !!}</p> 
     <TABLE> 
     <TH>SELECT</TH><TH>PRODUCT</TH><TH>COMMENT</TH><TH>PRICE</TH> 
     @foreach($myBuyers as $myQuotedProducts) 
      @if($products->id == $myQuotedProducts->id) 
       <TR> 
        <TD>{!! Form::radio('selectedButton' .$myQuotedProducts->product_id, $myQuotedProducts->product_id) !!}</TD> 
        <TD>{!! $products->productname !!}</TD><TD>{!! $myQuotedProducts->comments !!}</TD> 
        <TD>{!! $myQuotedProducts->price !!}</TD> 
       </TR> 
      @endif 
     @endforeach 
     </TABLE> 
    </div> 
@endforeach 
+0

由于@vshotarov。我感谢你的热烈贡献。我能够用下面的逻辑完成它。 – kehinde

+0

我很高兴你有它的工作! – vshotarov

1

感谢所有。这是让我到达目的地的解决方法。我很感谢大家为此做出的贡献。

这是叶片视图:

<DIV style="color:#0000FF"> 
        @foreach($myBuyers as $myQuotedProducts) 
          @foreach($product as $products) 
           @if($products->id === $myQuotedProducts->product_id) 
            @if($myQuotedProducts->user_id === Auth::user()->id) 
            <TABLE> 
             {!! $products->productname !!} | {!! count($myQuotedProducts->product_id) !!} 
              <TH>COMMENTS</TH><TH>PRICE</TH> 
              @foreach($myBuyersCount as $countingBuyers) 
               @if($countingBuyers->product_id === $myQuotedProducts->product_id) 
                <TR><TD>{!! $countingBuyers->comments !!} </TD><TD>{!! $countingBuyers->price !!} </TD></TR> 
               @endif 
              @endforeach 

            </TABLE> 
            @endif 
           @endif 
          @endforeach 
         @endforeach 
       </DIV> 

这是控制器:

public function index() 
    { 
     $product = Product::all(); 
     $myBuyers = BiddingComments::where('user_id', '=', Auth::user()->id)->orderBy('price', 'DESC')->groupBy('product_id')->get()->all(); 
     $myBuyersCount = BiddingComments::where('user_id', '=', Auth::user()->id)->orderBy('price', 'DESC')->get(); 

     return view('buyers.index') 
     ->with('product', $product) 
     ->with('myBuyersCount', $myBuyersCount) 
     ->with('myBuyers', $myBuyers); 
    }