Laravel передает переменные модальному диалогу, если id - PullRequest
0 голосов
/ 01 июля 2018

У меня 3 таблицы, categories, items, relateditems. Теперь я могу отобразить эти 3 таблицы на домашней странице, чтобы я мог видеть название категории, а под ним заголовок элемента и под заголовком элемента - связанный элемент.

Я хочу показывать переменные в модальном диалоге, на домашней странице я могу отображать его без проблем, но я хочу показать конкретный элемент со связанными элементами из-за его идентификатора. Теперь я могу отображать только элементы в модальном режиме, но могу ' t отображать связанные элементы

Home.blade

@foreach($ritems as $categoryId => $groupItems)
    <div>
        <p>
            @if (!empty($groupItems->first()->category))        
                {{ $groupItems->first()->category->category_name }}
            @else
                {{$categoryId}}
            @endif
        </p>
    </div>
    @foreach($groupItems as $item)
        <button id="Item_root" data-titlefield="{{$item->item_title}}" class="Item_root">
            <span>{{$item->item_title}}</span>
            <p> related:</p>
            @foreach($item->relateditems as $relatedItem)
                @if ($relatedItem->item) 
                    {{$relatedItem->item->item_title}}  
                @endif
            @endforeach
        </button>
    @endforeach
@endforeach

* Javascript 1014 *

<script>
    $(function(){  
        $('.Item_root').on("click", function () { 
            $('#myModal').modal('show');
            $('#title').text($(this).data('titlefield'));
        }); 
    });
</script>

Контроллер

   $ritems = Item::orderBy('category_id', 'asc')->with('category','relateditems', 'relateditems.item')->get()->groupBy('category_id');

Модель

категория модели

 public function items() {

    return $this->hasMany('App\Item', 'category_id');
  }

Модель товара

  public function category() 
 {
    return $this->belongsTo('App\Category', 'category_id');
 }

  public function relateditems() 
 {
return $this->hasMany('App\Relateditem', 'ritemf_id');     
 }

модель родственного элемента

 public function item() 
  {  
    return $this->belongsTo('App\Item', 'riteml_id');
   }

1 Ответ

0 голосов
/ 06 июля 2018

Согласно нашему долгому обсуждению в чате, вы должны использовать ajax для просмотра модели:

$(function() {
  $(".Item_root").on("click", function() {
    var btn = $(this);
    var itemid = $(this).data("item-id");

    $.ajax({
      url: "url/to/router/" + itemid,
      type: "get",
      success: function(d) {
        $("#myModal").modal("show");
        $("#title").text(btn.data("titlefield"));
        $("#related_item").html(d);
      }
    });
  });
});

и для получения соответствующего элемента вы должны добавить функцию контроллера примерно так:

function getRelatedItems()
{
    $currentid = request('item_id');
    $nritems = Item::where('item_id', $currentid)->first()->relateditems()->get();
    foreach ($nritems as $rItem) {

        $ItemDetails = Item::find($rItem->riteml_id);


        echo '<div class="SuggestedItem_container"> 
            <label color="red" class="Checker_root Checker_red Checker_left"> 
            <input type="checkbox" class="Checker_input" value="on"> 
            <div class="SuggestedItem_nameContainer"> 
            <div> 
            <span id="related_item" class="SuggestedItem_name">' . $ItemDetails->Item_title . '</span> 

            <span class="SuggestedItem_price styles_small styles_base styles_spacing-base">related item price</span></div></div> 

            <div class="SuggestedItem_description styles_small styles_base styles_spacing-base"> 
            <span class="SuggestedItem_category styles_bold">related item category</span> 

            <span>related item details</span> 
            </div> 
            </label> 
            </div>';
    }


}

Удачи!

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