【发布时间】:2020-07-20 11:42:28
【问题描述】:
我是 Laravel 的新手。我正在练习在 Laravel 6 中建立博客。我有一个layout.blade.php 文件,其中编写了所有基本的 HTML。在layout.blade file 的内容部分,我想根据控制器和方法名称@include 其他刀片文件。
我有 2 个控制器,HomeController 和 ArticleController。在HomeController 文件中,有一个方法index() 返回视图home.blade.php。同样,home.blade.php@extendslayout.blade.php。现在想知道layout.blade.php文件里面是哪个控制器和方法调用了视图文件。
我想要这样的东西-
<!-- This is layout.blade.php file -->
<html>
<head>
</head>
<body>
@if (Controller == HomeController AND Method == index)
@include('home')
@endif
@if (Controller == ArticleController AND Method == index)
@include('articles')
@endif
</body>
</html>
我在 Google 上没有找到任何答案。我在 StackOverflow 中遇到了一些问题,但它们的答案非常混乱,而且这些版本也较旧。
谢谢。
编辑 1:
- 由于信誉分数低,我无法在 cmets 中回复。如我一般 新的,我知道刀片的一些基本标签,所以如果有其他的 解决方案,请与我分享。
- 我发现 Get Laravel 5 controller name in view 在提出这个问题之前。但我不认为它回答了我的 问题。
- 我知道
Controller == HomeController AND Method == index疯了。 我只是说明了我需要什么。我知道基本的@yield和@section标签,但我不想在我的情况下使用它。因为,如果我做一个 card/home 部分完全在不同的文件中,我可以调用它 其他文件稍后。如果我使用@yield,我将不得不使用@section不同的文件,我不想这样做。
【问题讨论】:
-
我认为
Route::currentRouteAction()应该可以解决问题,但您的方法对我来说似乎很奇怪。也许刀片@stack可以更好地满足您的需求。 -
这能回答你的问题吗? Get Laravel 5 controller name in view
-
@IGP,请分享它作为答案。这就是我想要的。
-
@YasinPate,我在提出这个问题之前发现了这个问题,但遗憾的是它没有回答我的问题。
-
@S.M.Khalilullah,不检查控制器和动作,而是直接通过以下方式检查路由 url:if(Request::url() === 'your url here')
标签: php laravel laravel-blade laravel-6