Показать сравнить атрибуты для каждого продукта - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть код:

<table class="table table-bordered">
            <tr>
              <td class="align-middle">
            
              </td>
              @forelse($products as $product)
                <td>
                  <div class="comparison-item">
                    <a class="comparison-item-thumb" href="shop-single.html">
                      <img src="{{ Voyager::image($product->image) }}" alt="Apple iPhone X">
                    </a>
                    <a class="comparison-item-title" href="shop-single.html">{{ $product->title }}</a>
                  </div>
                </td>
                
              @empty

              Нет товаров для сравнения

              @endforelse
            </tr>

            @foreach($products as $keyp => $product)
            
                @foreach($product->prodChar as $key => $char)
                <tr>
                    
                    <th>{{ $char->prodCharacter->title }}</th>
                    <td>{{ $char->value }}</td>
                          
                    <td>-</td>
                    <td>-</td>
                
                </tr>
                @endforeach
            
            @endforeach
          
            <tr>
              <th></th>
              <td><a class="btn btn-outline-primary btn-sm btn-block" href="#" data-toast data-toast-type="success" data-toast-position="topRight" data-toast-icon="icon-check-circle" data-toast-title="Product" data-toast-message="successfuly added to cart!">Add to Cart</a></td>
              <td><a class="btn btn-outline-primary btn-sm btn-block" href="#" data-toast data-toast-type="success" data-toast-position="topRight" data-toast-icon="icon-check-circle" data-toast-title="Product" data-toast-message="successfuly added to cart!">Add to Cart</a></td>
              <td><a class="btn btn-outline-primary btn-sm btn-block" href="#" data-toast data-toast-type="success" data-toast-position="topRight" data-toast-icon="icon-check-circle" data-toast-title="Product" data-toast-message="successfuly added to cart!">Add to Cart</a></td>
            </tr>
        </table>

Изображение, как это показывает:

Click

Мне нужно написать: "-".Для продукта, где атрибут отсутствует.Теперь я показываю все атрибуты в одном столбце для каждого продукта.Как я могу решить эту проблему?Мне нужно сравнить ключи массивов?

1 Ответ

0 голосов
/ 26 сентября 2018

Если я правильно понимаю, вы говорите об этом небольшом разделе здесь:

           @foreach($product->prodChar as $key => $char)
            <tr>

                <th>{{ $char->prodCharacter->title }}</th>
                <td>{{ $char->value }}</td>

                <td>-</td>
                <td>-</td>

            </tr>
            @endforeach

Итак, у вас есть два варианта здесь:

Опция # 1 :Вы можете сравнить прямо в представлении следующим образом:

<td>{{ $char->value?: "-" }}</td>

Это вернет - всякий раз, когда ваше значение равно нулю.

Option # 2 : Вы можетесоздайте мутатор в модели ProductChar следующим образом:

 // ...your product model code
 public function getValueAttribute() {
  return $this->attributes['value']?: "-";
 }

Это сделает так, что при вызове $char->value он будет использовать значение (если не ноль) или вернет -, еслиэто ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...