Laravel中未定义变量:user

6

首先声明一下,我已经查看了大部分与我的问题相关的答案,但是我仍然遇到了一个未定义的变量:user。

我想在仪表盘上显示已注册的用户,之前我使用过这段代码,它可以工作,但对于这个应用程序却不行。

Undefined variable: user (View: /Applications/MAMP/htdocs/eli/resources/views/dashboard.blade.php)

这里是我的代码:

UserController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\User;
use App\Http\Requests;

class UserController extends Controller
{
    public function getWelcome()
    {

      return view('welcome');

    }

    public function getDashboard()
    {
        $users = User::all();

        return view('dashboard', compact('users'));
    }


    public function userSignUp(Request $request)
    {

        $this->validate($request, [
            'email' => 'required|email|unique:users',
            'first_name' => 'required|max:120',
            'password' => 'required|min:4'

        ]);

        $email = $request['email'];
        $first_name = $request['first_name'];
        $password = bcrypt($request['password']);

        $user = new User();
        $user->email = $email;
        $user->first_name = $first_name;
        $user->password = $password;

        $user->save();



        return redirect()->route('dashboard');

    }
    public function postSignin(Request $request)
    {
        $remember = $request->input('remember_me');

        if(Auth::attempt(['email'=> $request['email'], 'password' => $request['password']], $remember )){
            return redirect()->route('dashboard');
        }

        return redirect()->back();
    }


}

dashboard.blade.php

@extends('layouts.layout')

@section('title')
Dashboard
@endsection

@section('content')
    <div class="container eli-main">
        <div class="row">
            <div class="col-md-6 col-md-12">


                      <h1>{{$user->username}}</h1>


            </div>
    </div>
@endsection


你需要在视图中循环遍历 $users 来获取用户详细信息。 - linktoahref
谢谢,它给了我SQLSTATE[HY000] [2002]连接被拒绝的错误。 - BARNOWL
1
没关系,我已经解决了,谢谢。 - BARNOWL
2个回答

3

如果您想显示所有用户的名称,您需要在视图中传递$users集合并对其进行迭代:

@foreach ($users as $user)
    {{ $user->username }}
@endforeach

如果您想显示已认证用户的名称,只需执行以下操作:
{{ auth()->user()->username }}

0
我已经这样做了,但它仍然没有帮助我。我在我的Blade文件中使用了foreach,并且在我的控制器中使用了users,但仍然出现相同的错误。

请尽量将此作为评论添加,而不是另一个回答。 - Toby Allen
这并没有真正回答问题。如果你有其他问题,可以点击提问来提出。如果你想在这个问题有新的回答时收到通知,你可以关注此问题。一旦你拥有足够的声望,你还可以添加悬赏以吸引更多关注。- 来自评论 - Zohaib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接