laravel 5.2 视图中的“未定义变量:一个”

“Undefined variable: a ” in laravel 5.2 view

请帮助我,我是使用 laravel 的新手,当我使用 Relations 时,出现如下错误。

ErrorException in 5ef4934eeff3d728094534ae49b02bc13ec04ae1.php line 122: Undefined variable: a (View: E:\xampp\htdocs\beasiswa\resources\views\beasiswa\daftar_beasiswa.blade.php)

控制器在BeasiswaController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Beasiswa;
use App\Databeasiswa;
use Illuminate\Support\Facades\Input;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Controllers\BeasiswaController;

class BeasiswaController extends Controller
{
    public function index(){
     $data = Beasiswa::all();
        return view('beasiswa.daftar_beasiswa')->with('data', $data);
    }

路由是这样定义的

Route::resource('/beasiswa', 'BeasiswaController');
Route::get('beasiswa', 'BeasiswaController@index');

这是我的 模型 Beasiswa.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Beasiswa extends Model
{
    protected $fillable = [
       'nama_bea', 
       'syarat', 
       'waktu_pendaftaran',
       'status'
       ];

 public function callDatabeasiswa(){
  return $this->hasMany('App\Databeasiswa');
 }
}

这是我在 daftar_beasiswa.blade.php

上的 View

<table class="table table-striped">
<thead>
    <tr>
      <th style="width: 20px">No</th>
      <th>Nama Beasiswa</th> 
      <th>Periode Pendaftaran</th>                
      <th style="width: 45px">Edit</th>
      <th style="width: 45px">Detail</th>
      <th style="width: 45px">Hapus</th>
      <th style="width: 45px">Broadcast</th>
    </tr>
</thead>

<tbody>
 @foreach($data as $a)
 <tr>
  <td>{{ $a->id }}</td>
  <td>{{ $a->nama_bea }}</td>
  <td>{{ $a->waktu_pendaftaran }}</td>
  <td>
   <a href="{{ url('beasiswa/'.$a->id.'/edit') }}" class="btn btn-info btn-sm"><i class="glyphicon glyphicon-pencil"></i></a>
  </td>
  <td>
   <a href="{{ url('beasiswa/'.$a->id) }}" class="btn btn-warning btn-sm"><i class="glyphicon glyphicon-eye-open"></i></a>
  </td>
  <td>
   <form action="{{ url('beasiswa/'.$a->id) }}" method="post">
   {{ csrf_field() }}
   <input type="hidden" name="_method" value="DELETE"><button type="submit" class="btn btn-danger btn-sm"><i class="glyphicon glyphicon-trash"></i></button>
   </form>
  </td>
  <!-- POST -->
  <td>
    <!-- BUTTON SEND VIA TELEGRAM -->
   {{ csrf_field() }}
   <button data-toggle="modal" data-target="#modal-sendtelegram" type="button" class="btn btn-primary btn-sm"><i class="glyphicon glyphicon-send"></i></button>
  </td>
 </tr>
 @endforeach
</tbody>

</table>

首先,您使用 ->with() 函数将数据作为会话数据发送。最好只将它提供给您查看。其次,您基本上是在发送带有任意标识符的数据。

$data 应该是一个数组 - 其中的键将变成您可以在视图中访问的变量。真聪明

因此,如果您在控制器中执行此操作:

$data = ['name' => 'Mr. Smith', 'models' => MyModel::all()];
return view('myview', $data);

您可以在您的视图中像这样访问数据:

<p>{{ $name }}</p>

@foreach($models as $model)

 <p>{{ $model->myAttribute }}</p>

@endforeach

所以在你的情况下,尝试做这样的事情:

 // In your controller
 public function index() {
        $data = ['beasiswa' => Beasiswa::all()];
        return view('beasiswa.daftar_beasiswa', $data);
    }

然后

   // in your view
    @foreach($beasiswa as $a)
    ....