未定义的偏移量:刀片Laravel 5.6中为0

时间:2019-02-10 16:01:43

标签: laravel laravel-5

我正在尝试从刀片模板获取数据。我正在尝试,但没有显示任何内容。在数据库表中, u_id 的值为 10 。当我的代码是

@foreach($school_data as $val)
  <?php 
      $datas2 = \App\criteria::where('u_id', $val->u_id)->get();
      $trck2= $datas2['0']->updated_by_email;
   ?>
@endforeach

它显示未定义的偏移量:0 。但是当它是静态值

@foreach($school_data as $val)       
 <?php 
      $datas2 = \App\criteria::where('u_id', '10')->get();
      $trck2= $datas2['0']->updated_by_email;
   ?>
@endforeach

然后它可以正常工作。我该如何解决?

预先感谢

2 个答案:

答案 0 :(得分:0)

数组索引have是一个整数,请使用:

$trck2= $datas2[0]->updated_by_email;

答案 1 :(得分:0)

我建议将$ val-> u_id的值打印到@foreach中以调试代码。

然后在Blade中为php变量分配值的正确方法是使用 @php 指令。
How to Set Variables in a Laravel Blade Template
https://laravel.com/docs/5.7/blade#php

@foreach($school_data as $val)
    {{$val->u_id}}
    @php ($datas2 = \App\criteria::where('u_id', $val->u_id)->get()) @endphp
    @php (dump($datas2) ) @endphp
    @php ($trck2 = $datas2['0']->updated_by_email) @endphp
@endforeach