2015-09-09 1 views
1

Как показать модальный динамический контент из базы данных в Laravel?Показать bootstrap modal при нажатии на href Laravel

мой взгляд:

<li><a href="{!! action('[email protected]', $test->slug) !!}">{!! $test->test_name !!} </a></li> 

моя модель:

public function show($slug) 
    { 
     $test = Test::whereSlug($slug)->firstOrFail(); 
     return view('tests.show', compact('test')); 
    } 

Это модальный я хочу показать на активной странице вместо создания нового вида. Я думаю, это можно сделать с помощью return view()->with, но не может его реализовать.

+0

Вы можете сделать это с помощью AJAX. Загрузка ваших данных, но не обновление страницы. – aldrin27

+0

Положительный дубликат, пожалуйста, проверьте это http://stackoverflow.com/questions/18378720/bootstrap-3-with-remote-modal – rigobcastro

ответ

6

Вы можете сделать этот трюк, если хотите.

в контроллере:

public function show($slug) 
    { 
     $test = Test::whereSlug($slug)->firstOrFail(); 
     return view('tests.show', compact('test')); 
    } 

и на ваш взгляд:

<li><button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#yourModal"></li> 

<div class="modal fade" id="yourModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    <div class="modal-dialog" role="document"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
     <h4 class="modal-title" id="myModalLabel">{{$test->someTitle}}</h4> 
     </div> 
     <div class="modal-body"> 
     {{$test->someField}} 
     </div> 
     <div class="modal-footer"> 
     <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
     <button type="button" class="btn btn-primary">Save changes</button> 
     </div> 
    </div> 
    </div> 
</div> 

И потом, если у вас есть несколько данных, чтобы получить, вы просто должны использовать foreach. Например:

контроллер

public function show() 
    { 
     $test = Test::all(); 
     return view('tests.show', compact('test')); 
    } 

вид:

@foreach ($test as $t) 
     <li><button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#yourModal{{$t->id}}"></li> 
    @endforeach 

@foreach ($test as $t)  
    <div class="modal fade" id="yourModal{{$t->id}}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
     <div class="modal-dialog" role="document"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
      <h4 class="modal-title" id="myModalLabel">{{$t->someTitle}}</h4> 
      </div> 
      <div class="modal-body"> 
      {{$t->someField}} 
      </div> 
      <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      <button type="button" class="btn btn-primary">Save changes</button> 
      </div> 
     </div> 
     </div> 
    </div> 
@endforeach 
+1

Спасибо, помощник! Хорошее и чистое решение, отлично работает. – Roman

+1

Рад, что я могу помочь. – FewFlyBy

Смежные вопросы