我有这个问题。
未定义变量:acara(查看: /var/www/html/event_organizer/resources/views/admin/home.blade.php)
但我已经在控制器上声明了$ acara,就像这样
控制器
use App\events;
public function lihat_acara()
{
$data['acara'] = events::all();
return view('admin.home')->with($data);
}
和这样的观点
home.blade.php
@foreach($acara as $key)
<tbody>
<tr>
<td>{{ $key->nama_acara }}</td>
<td>{{ $key->kategori_acara }}</td>
<td>{{ $key->lokasi_acara }}</td>
</tr>
</tbody>
@endforeach
我的代码出了什么问题?任何的想法? :)
答案 0 :(得分:4)
您需要更改with()
它需要一个数组
更改
with(['data'=>$data]);
或者你也可以这样做
withData($data);
现在,您可以使用$data
和/来接收视图中的变量
在你的情况下它将是
use App\events;
public function lihat_acara()
{
$data['acara'] = events::all();
return view('admin.home')->with(['acara'=>$data['acara']]);
}
或者
use App\events;
public function lihat_acara()
{
$data['acara'] = events::all();
return view('admin.home')->withAcara($data['acara']);
}
答案 1 :(得分:3)
use App\events;
public function lihat_acara()
{
$data['acara'] = events::all();
return view('admin.home', ['acara' => $data['acara'] ]);
}
OR
use App\events;
public function lihat_acara()
{
$data['acara'] = events::all();
return view('admin.home')->with('acara', $data['acara']);
}
OR
use App\events;
public function lihat_acara()
{
$data['acara'] = events::all();
return view('admin.home')->withAcara($data['acara']);
}
从这个laravel官方网站Passing data to view,您可以找到从控制器发送数据到视图的所有方式。
答案 2 :(得分:1)
在上面的场景中,acara
不是您将acara
声明为数组键的变量。我不知道你为什么要这样做。您可以简单地编写如下代码:
$acara = Event::all();
或强>
如果你想保持这样的控制器,改变@foreach
循环中的变量:
@foreach($data['acara'] as $key)
<tbody>
<tr>
<td>{{ $key->nama_acara }}</td>
<td>{{ $key->kategori_acara }}</td>
<td>{{ $key->lokasi_acara }}</td>
</tr>
</tbody>
@endforeach