同一生命周期,不同的视图里有相同变量名会不会有影响?
在本节里,我把 layouts._header
的话题替换为变量,代码如下:
app/Providers/ComposerServiceProvider.php
...
class ComposerServiceProvider extends ServiceProvider {
...
public function boot() {
//初始化导航头视图数据
View::composer('layouts._header', function($view) {
$postCategories = \App\Models\PostCategory::all();
$view->with(compact('postCategories'));
});
}
...
}
resources/views/layouts/_header.blade.php
...
<!-- Left Side Of Navbar -->
<ul class="nav navbar-nav">
<li class="active"><a href="{{ route('posts.index') }}">所有帖子</a></li>
@if (count($postCategories))
@foreach ($postCategories as $postCategory)
<li><a href="{{ route('postCategories.show', $postCategory->id) }}">{{ $postCategory->name }}</a></li>
@endforeach
@endif
</ul>
...
resources/views/posts/index.blade.php
...
@if (isset($postCategory))
<div class="alert alert-info" role="alert">
{{ $postCategory->name }} :{{ $postCategory->description }}
</div>
@endif
...
考虑到可能有其他分类,所以我用 postCategory 替换了教程里的 category。
视图 posts.index
继承了 layouts.app
,layouts.app
引入了 layouts._header
,而 posts.index
和 layouts._header
都有 $postCategory
变量(posts.index
里的 $postCategory
是当前分类,layouts._header
里的 $postCategory
是所有分类遍历的变量)。
我的场景下没有出问题,我想知道其他场景会不会出问题?一个生命周期里不同视图之间的变量名不会冲突吧?
推荐文章: