在Laravel中将@lang作为@section参数传递

时间:2017-04-20 08:09:14

标签: php laravel multilingual laravel-blade

我正在使用Laravel 5.4中的多语言应用程序

template.blade.php

<title>@yield('title')</title>

然后在其他页面中,我尝试根据用户区域设置以动态方式设置磁贴。当我尝试使用以下内容时抛出错误:

@section('title',{{ __("dashboard") }})

@section('title', @lang("dashboard"))

这是错误:

Parse error: syntax error, unexpected '<'

任何人都可以告诉我如何在@lang

中将__('')@section()作为参数传递

3 个答案:

答案 0 :(得分:3)

你所拥有的参数应该是php。因此,当你放入@lang或{{}}时,它会在已打开的php标签内打开php标签 因此,您可以做的只是将__()放在括号中。就像那样:

@section('title', __('dashboard'))

答案 1 :(得分:1)

您可以使用trans代替lang装饰器:

@section('title', trans("dashboard"))

您也可以使用__这样的功能:

@section('title', __("dashboard"))

您不需要使用{{}},因为您没有在另一个指令中使用它。

答案 2 :(得分:0)

实际上,@section 不提供显式参数传递。

但是,您想要的是将参数传递给包含模板,而不是传递给产量,因此在刀片的开头:

@extends('my_parent',['my_parameter'=>'my_value'])