isset 在 laravel 中不工作

isset is not working in laravel

我正在将变量从控制器发送到视图。

$message = "Thanks for Contacting";

 return redirect('services')->with($message);

HTML

 @isset ($message)
 <a style="color: red;"> {{$message}} </a>
@endisset

但它显示错误,因为当第一个 services 是从这条路线加载时 Route::get('/services', function () { return view('services'); });

没有变量,所以报错。请让我知道我缺少什么?

你必须和@if一起使用, 试试这个:

@if(session()->has('message'))
 <a style="color: red;"> {{ session('message')}} </a>
@endif

并像这样更改您的控制器:

return redirect('services')->with('message', $message);

redirect()->with()中设置的变量将保存到会话变量中,因此要访问它只需调用session() helper。示例:

@if (session('message'))
    <div class="alert alert-success">
        {{ session('message') }}
    </div>
@endif

更多说明: https://laravel.com/docs/5.6/redirects#redirecting-with-flashed-session-data

问题是您如何将变量传递给您的视图。

正确的方法是:

return view('services')->with('message', $message);

return view('services')->withMessage($message);

return view('services', ['message' => $message]);

return view('services', compact('message'));