Php 未定义变量$credentials,尝试了多种解决方案,但无法';我不理解我的错误

Php 未定义变量$credentials,尝试了多种解决方案,但无法';我不理解我的错误,php,laravel,Php,Laravel,我是一个初学者,正在学习拉威尔语。我试图创建一个网页,一旦我登录,它会显示我的登录信息(如电子邮件和密码)。在我的控制器部分,我使用route参数传递值,但当我在blade中调用它时,它会显示 错误例外 未定义的变量$credentials(视图:…..\new project\NewLearn\resources\views\welcome.blade.php) 我的数据库有users表(email和password列(仅显示),以及名称、id和时间戳) 我的登录控制器 public func

我是一个初学者,正在学习拉威尔语。我试图创建一个网页,一旦我登录,它会显示我的登录信息(如电子邮件和密码)。在我的控制器部分,我使用route参数传递值,但当我在blade中调用它时,它会显示

错误例外 未定义的变量$credentials(视图:…..\new project\NewLearn\resources\views\welcome.blade.php)

我的数据库有users表(email和password列(仅显示),以及名称、id和时间戳)

我的登录控制器

public function loginProcess(Request $request)
{
        $this->validate($request, [
            'email' => 'required|email',
            'password' => 'required|min:4',
        ]);

        $credentials = $request->except(['_token']);
        if (auth()->attempt($credentials)) {
            return redirect()->route('welcome', [$credentials->email]);
        }
        else{
        $this->setErrorMessage('Invalid!');
        return redirect()->back();
        }
我的路线

Route::get('/', function () {
return view('login');});

Route::view('/welcome', 'welcome')->middleware('auth')->name('welcome');
Route::post('/login', [App\Http\Controllers\LoginController::class, 'loginProcess'])->middleware('guest')->name('login');
Route::get('/login', [App\Http\Controllers\LoginController::class, 'loginProcess'])->middleware('guest');
my welcome.blade.php

         @extends('master')
         @section('contents')
             @include('partials.jumbotron')
         @stop
         @section('content')

        <h3 class="pb-3 mb-4 font-italic border-bottom">
            {{$credentials->email}}
        </h3>

        <div class="blog-post">
            <h2 class="blog-post-title">Sample blog post</h2>

        </div>

        <nav class="blog-pagination">
            <a class="btn btn-outline-primary" href="#">Older</a>
            <a class="btn btn-outline-secondary disabled" href="#">Newer</a>
        </nav>


         @stop
@extends('master'))
@节(“内容”)
@包括('partials.jumbotron')
@停止
@节(“内容”)
{{$credentials->email}
博客文章示例
@停止

我在哪里犯错?提前感谢。

您已经从控制器传递了
$credentials->email
。如果您想保留刀片(视图)文件,只需从控制器传递
$credentials
,并返回带有参数的视图,而不是路由重定向

大概是这样的:

return view('welcome', [
    'credentials' => $credentials,
])

你让自己很难受。 让我们从改变开始

Route::view('/welcome', 'welcome')->middleware('auth')->name('welcome');

现在在登录过程中只需更改

if (auth()->attempt($credentials)) {
            return redirect()->route('welcome', [$credentials->email]);
        }

现在,在您的刀片文件中,您可以简单地使用

{{ $user->email }}

显示如何。。。将数据传递给views@brombeer我也尝试过使用-returnview('welcome',$credentials)。。。。同样的错误发生在
返回视图('welcome',['credentials'=>$credentials])是的,也这样做了。但是我的刀片仍然没有得到任何值。所以在你的刀片中,检查它是否已设置,然后只显示它。可能是您的视图在没有凭证的情况下从您的路线调用是的,我也这样做了,但它显示了相同的错误,未定义变量。也许我无法调用blade中传递的值?我把它叫做{{$credentials}。既然$credentials同时具有电子邮件和密码值,我是否应该使用任何循环或其他方法?您能否在刀片文件中
@dd($credentials)
查看是否存在任何内容?是的,我在控制器中这样做了,控制器显示值。但在blade中使用时,它显示相同的未定义变量错误:(您是否只传递了
$credentials
而不是
$credentials->email
?是的,我尝试了
$credentials
$credentials->email
…因为我的表是用户,所以我甚至尝试了不同的变量
$data=user::all();
返回视图('welcome',$data);
。但是当我键入{{{$data}/{{{$data->email}时,它会给出相同的错误是的!这很好。谢谢!因为你是拉拉维尔的初学者,学习的方向很重要,我建议你去参观并彻底开始。这将为你的未来打下坚实的基础。好的,我来完成它。谢谢你的建议:
if (auth()->attempt($credentials)) {
            return redirect()->route('welcome');
        }
{{ $user->email }}