我对laravel不熟悉并正在构建一个简单的应用程序。我在我的控制器中使用此功能:
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
//
//return view('adminlte::home');
// $user= Auth::user()->id;
$csafe = csafe::where('id','=', $user->id)->get()->first();
return view('csaves.show', array('csafe' => $csafe));
}
但是当我在网络浏览器中显示视图时,我收到以下错误:
未定义的变量:user 并且只显示用户的查询。 "从
users
中选择*,其中id
=' 1'限制1" 我也试过用 $ csafe = csafe :: where(' id',' =',' {{$ user-> id}}') - > get () - >首先(); 这次它再次失败错误: 试图获得非对象的属性
在我的查询中显示:
"从users
中选择*,其中id
=' 1'限制1"
和
"从csaves
中选择* id
=' {{$ user-> id}}'"
限制我的csaves表以显示特定用户ID的值的最佳方法是什么?
答案 0 :(得分:2)
您可以这样使用它:
use App\User;
use App\Csafe;
public function index()
{
$user = Auth::user();
$csafe = Csafe::where('userid','=', $user->id)->first();
return view('csaves.show', array('csafe' => $csafe));
}
正如我可以看到您的代码,您使用的错误如下:
答案 1 :(得分:1)
这是因为用户变量$ user被注释:
改变这个:
// $user= Auth::user()->id;
成: $ user = Auth :: user() - > id;