让模态对 Laravel 中的每个视图可用?
Make modal available to every view in Laravel?
我创建了一个中间件函数,它使用 View::share 将 foo 传递给任何其他视图。所以,我知道我可以进入一个视图,那里可以使用 foo。
我的需求有点奇怪,但我确信有一种方法可以实现它。我需要将 foo 传递给模态,然后在不在视图中使用 include 的情况下,在每个页面上显示该模态。一旦用户确认模态,将在数据库中设置一个标志并将 foo 设置为 null,因此模态不会显示。
所以,我的问题是,如果不在每个视图中包含局部视图,是否有办法在设置标志之前在每个页面上显示模式?
您可以在布局文件中执行此操作。在下面的某个地方导入 Bootstrap JavaScript。如果在页眉中导入Bootstrap,最好在布局文件的主要部分下导入。
由于这是模态框,您可以将其导入到 </html>
结束标记的正上方。
如果您喜欢局部视图的条件,它看起来像这样:
@if ($condition == true)
@include('path.to.modal')
@endif
美妙之处在于您只需包含一次。只要确保条件通常是accessible/existing。这通常是通过中间件完成的。如果由于某种原因,条件发生变化或不再需要,则 adapt/delete.
只有 3 行代码
我创建了一个中间件函数,它使用 View::share 将 foo 传递给任何其他视图。所以,我知道我可以进入一个视图,那里可以使用 foo。 我的需求有点奇怪,但我确信有一种方法可以实现它。我需要将 foo 传递给模态,然后在不在视图中使用 include 的情况下,在每个页面上显示该模态。一旦用户确认模态,将在数据库中设置一个标志并将 foo 设置为 null,因此模态不会显示。 所以,我的问题是,如果不在每个视图中包含局部视图,是否有办法在设置标志之前在每个页面上显示模式?
您可以在布局文件中执行此操作。在下面的某个地方导入 Bootstrap JavaScript。如果在页眉中导入Bootstrap,最好在布局文件的主要部分下导入。
由于这是模态框,您可以将其导入到 </html>
结束标记的正上方。
如果您喜欢局部视图的条件,它看起来像这样:
@if ($condition == true)
@include('path.to.modal')
@endif
美妙之处在于您只需包含一次。只要确保条件通常是accessible/existing。这通常是通过中间件完成的。如果由于某种原因,条件发生变化或不再需要,则 adapt/delete.
只有 3 行代码