点击href时显示Bootstrap模态窗口(Laravel)

4
如何在Laravel中使用数据库动态内容显示模态框?
我的视图代码如下:
<li><a href="{!! action('TestsController@show', $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实现,但是无法实现。


你可以使用AJAX来加载数据而不刷新页面。 - aldrin27
可能是重复问题,请查看此链接 https://dev59.com/wmMl5IYBdhLWcg3we203 - rigobcastro
1个回答

12

如果您想这样做,可以使用以下方法。

在您的控制器中:

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
很高兴我能帮到你。 - wobsoriano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接