Laravel扩展 - 仅在条件时发送参数

时间:2016-11-23 10:23:03

标签: laravel extends laravel-blade

我想查看$house->category。 取决于我想要使用@extends()函数发送参数的类别。

我无法让它发挥作用。当我使用类似的东西时:

@if($house->category == 1)
    @extends('templates.main')
@else
    @extends('templates.main', ['logo' => 'img/logo/logo_red_white_text.png', 'favicon' => 'img/favicon/favicon_red.ico'])
@endif

模板注入两次。

2 个答案:

答案 0 :(得分:0)

使用" @ include"而不是扩展,如果它被注入两次,你可以通过在控制器上处理该逻辑来防止这种情况,制作一个方法" checkHouseCategory"或类似的东西,检查$ house-> category == 1,然后只是向模板发送一个布尔值。

答案 1 :(得分:0)

问题是您无法在@extends函数中传递参数。

您可以做的是将视图部分移动到分离的文件,然后将@include移动到具有上述条件的主文件中。所以这看起来像:

使用@extends的部分视图我将命名为:example.blade.php

然后在主视图中部分:

@if($house->category == 1)
    @include('example')
@else
    @extends('example', ['logo' => 'img/logo/logo_red_white_text.png', 'favicon' => 'img/favicon/favicon_red.ico'])
@endif