<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\News;
use App\User;
use App\Event;
public function index()
{
$datanews['newss'] = News::orderBy('created_at','desc')->get();
$dataevent['events'] = Event::orderBy('created_at','desc')->get();
$user['users'] = User::all();
return view('user/aktuelles.index',$datanews, $dataevent,$user);
}
这是我控制器的一部分,我可以在我的视图中显示新闻和事件,但是每次它说找不到变量用户时,都会显示该消息?
我不知道为什么,因为我不知道为什么它显示了其他变量,但没有显示用户变量?
在我看来,我可以看到其他类似的变量:
@foreach ($newss as $news)
{{$news->newstitel}}
@endforeach
但是我想向用户显示:
{{$user[1]->avatar}}
我尝试了所有操作,所以我尝试使控制器看起来像这样:
$user = DB::table('users')->get();
或通过紧凑获取变量 我也尝试过完全一样
$user['users'] = User::orderBy('created_at','desc')->get();
在我看来是一个foreach,但是找不到变量user?
我不知道为什么
这是错误
Undefined variable: users
答案 0 :(得分:1)
return view('user.aktuelles.index', compact('datanews', 'dataevent', 'user');
答案 1 :(得分:1)
我不确定助手view()
如何处理您传递的第四个参数。根据{{3}},您可以像这样传递数据:
return view('user/aktuelles.index',[
'datanews' => $datanews,
'dataevent' => $dataevent,
'user' => $user,
]);
或
return view('user/aktuelles.index')->with([
'datanews' => $datanews,
'dataevent' => $dataevent,
'user' => $user,
]);
也许可以尝试这种方式。
编辑:
view()
助手接受3个参数:$ view = null,$ data = [],$ mergeData = [],因此您尝试传递的第4个参数甚至无法正常工作。您必须将数据作为第二个参数或链接函数with(array $data)
传递。
答案 2 :(得分:0)
您必须按照以下方法在视图中返回值:
更改此行
$user['users'] = User::orderBy('created_at','desc')->get();
收件人
$user = User::orderBy('created_at','desc')->get();
return view('user/aktuelles.index', ['datanews' => $datanews,'dataevent'=> $dataevent,'users'=>$user]);
现在,您将使用“用户”在视图内获得结果。
答案 3 :(得分:0)
您没有传递变量以正确查看,请使用 with 或 compact 传递变量以查看。 我更喜欢紧凑,因为它既简单又容易。
使用紧凑传递数据以进行查看:
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\News;
use App\User;
use App\Event;
public function index()
{
$datanews = News::orderBy('created_at','desc')->get();
$dataevent = Event::orderBy('created_at','desc')->get();
$user = User::all();
return view('user.aktuelles.index',compact('datanews', 'dataevent','user'));
}
使用和将变量传递给视图:
public function index()
{
$datanews = News::orderBy('created_at','desc')->get();
$dataevent = Event::orderBy('created_at','desc')->get();
$user = User::all();
return view('user.aktuelles.index)->with(['datanews' => $datanews,'dataevent'=> $dataevent,'users'=>$user]);
}
答案 4 :(得分:0)
您应该尝试以下操作:
use Illuminate\Support\Facades\DB;
use App\News;
use App\User;
use App\Event;
public function index()
{
$data['news'] = News::orderBy('created_at','desc')->get();
$data['events'] = Event::orderBy('created_at','desc')->get();
$data['users'] = User::all();
return view('user/aktuelles.index', $data);
}