【问题标题】:Blade laravel variable value type?Blade laravel 变量值类型?
【发布时间】:2017-04-29 07:49:49
【问题描述】:

我是 laravel 新手

只是好奇, 假设我在视图页面中创建了一个数组

myView.blade.php

假设:

$array = [
  1, 2, 3
];

在同一页面中,我想用“刀片”foreach 循环它

假设:

@foreach($array as $value)
<span id="{{$value}}">{{$value}}</span>
@endforeach

但是,我收到这样的错误。

ErrorException in 1ed42d9dadecab7c54e086f573c4cbad6576e7c3.php line 63:
Trying to get property of non-object...

发生了什么事?什么类型的变量实际上刀片转换?

任何问题将不胜感激! :)

【问题讨论】:

  • 我敢打赌这个错误是由另一个代码引起的。查看第 63 行的 1ed42d9dadecab7c54e086f573c4cbad6576e7c3.php 编译视图。
  • 发表你的看法。
  • 和后控制器相关代码
  • 你用的是什么版本的 laravel?

标签: php laravel


【解决方案1】:

首先,最好将数据从控制器传递到视图文件。

但是,如果你仍然想这样做,并且你正在使用 Laravel 5.3,你可以这样做:

@php
    $array = [
        1, 2, 3
    ]
@endphp

然后循环它:

@foreach($array as $value)
    <span id="{{$value}}">{{$value}}</span>
@endforeach

确保在循环之前声明$array 数组。

也请查看 Larave 文档中的 Service Injection 和 View Composers。

【讨论】:

  • 如果数组像 [ 'name' =>'john snow', 'age'=>22]
  • 在这种情况下,值将是 john snow 和 22。
  • 如果我想得到这样的数组值,如何将数组转换为对象,$value->name
  • 在php中将数组转换为对象的最简单方法是使用(object):$array = (object) [ 'name' =&gt;'john snow', 'age'=&gt;22]
  • 在这种情况下,您必须这样做:{{ $array-&gt;name }} 和 {{ $array-&gt;age }}
【解决方案2】:

其实我不知道你想要什么?但建议你应该在控制器中初始化你的数组,通过它来查看和 foreach。

在控制器中,

return view('your view path', ['array' => $array]);

在刀片中

@foreach($array as $value)
  <span id="{{$value}}">{{$value}}</span>
@endforeach

希望对你有帮助,谢谢。

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 2014-02-06
    • 2015-10-19
    • 2020-03-03
    • 2018-06-10
    • 2018-01-30
    • 2021-11-29
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多