【问题标题】:Laravel How to return variables from php file to blade templateLaravel如何将变量从php文件返回到刀片模板
【发布时间】:2018-05-08 04:07:32
【问题描述】:

我创建了一个本地化.php 文件,并定义了一些变量,例如:

localization.php

 <?php

 $color = 'red';
 $background = 'orange';

 ?>

现在我在所有刀片模板中都包含了本地化.php 文件,例如:

@include('localization') 

在模板中我想回显我在 localiztion.php 中提到的变量

 {{$color}} //when i use this it show error 'undefined variable'

你们能帮我解决这个问题吗

【问题讨论】:

  • 您确定您的文件已正确包含。 Blade 将在 app/views 目录中查找它。 Mby 看看here.
  • 是的,我的文件在视图目录 'app\resources'view\localization.blade.php'
  • 如果我回显类似 echo 'abc' 的内容,它可以工作并在模板中显示,但是当我使用变量并在刀片文件中调用此变量时,它会显示错误
  • 在您的localization.php 中添加一个echo "hello world" 以查看它是否真的被包含在刀片中,如果显示hello world 则它确实被添加了。如果没有,请检查元素,然后查看是否存在找不到目录的错误。这意味着你有错误的地址
  • echo 工作并显示结果,但是当我使用变量并调用它时,它显示错误未定义变量

标签: php laravel localization


【解决方案1】:

“我想在所有视图中使用这个本地化文件我有一些通用变量,我想将它包含在所有刀片模板中”

最好的方法是把它放在常量上。在目录config&gt;&gt;constants.php

<?php 

return
[
'ToBeReturn' => [
     'color' => 'red',
     'background' => 'orange']
];

然后你可以在你的控制器上返回它

 public function index() 
    {
        return view('index')
                   ->with('color',config('constants.ToBeReturn.color')
                   ->with('background',config('constants.ToBeReturn.background'));
    }

现在在您的视图中,您可以将其视为

{{ $color }}
{{ $background }}

做一个

php artisan config:cache

这是 MVC laravel 遵循的标准。将变量放在视图中并不好。所以既然你想要一个本地化变量,就把它放在常量上。

【讨论】:

    【解决方案2】:

    我试过了,效果很好

    View::share(with([
    'color' => 'red',
    'background' => 'orange'
    ]));
    

    它有效,但不幸的是它只允许添加路由文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-08
      • 2015-05-06
      • 2017-04-03
      • 2018-05-31
      • 2020-05-23
      • 2023-03-04
      • 1970-01-01
      • 2018-08-15
      相关资源
      最近更新 更多