我正在使用Laravel 5.8.32。在web.php
中,我有:
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/awesome', 'HomeController@doAwesome')->name('awesome');
在HomeController
中,我有:
public function index()
{
$a=230;
return redirect()->route('awesome', ['a' => $a]);
}//end of index function
在awesome.blade.php
文件夹内的views
中,我有:
<?php
echo "a = ".Session::get('a');
?>
否,当我点击URL /home
时,它转到URL /awesome?a=230
。我得到输出:a=
。因此,您看到一个空白值被打印。同时,URL有一个参数,我希望将其删除。
Q1)如何在视图中显示变量$a
?
Q2)如何从URL中删除参数,或者如果URL中不存在参数,则刷新时应将其保留在刷新位置,这样变量值将不会显示在视图中吗?还有其他方法吗?
$a
或直接使用{{$a}}
访问刀片模板中的Session::get('a');
public function index()
{
$a=230;
Session::flash('a', $a);
return redirect()->route('awesome');
}
public function doAwesome()
{
$a = Session::get('a');
return view('awesome')->with(['a' => $a]);
}
Q2)如何从URL中删除参数,或者如果URL中不存在参数,则应将其保留在刷新时的位置,这样变量值将不会显示在视图中?还有其他方法吗?
以上解决方案也适用于此问题,但是如果要在下次刷新页面使用此参数,则应将其替换为:
Session::push('a', $a);
a
是路线uri
参数,因为route()
方法已定义,第一个参数是route name
,第二个参数是uri parameter
的列表,它将显示在您的网址上。现在,如果我们按照以下方式操作-public function index()
{
$a=230;
return redirect('awesome')->with('a',$a);
}
public function doAwesome()
{
$a = session('a');
return view('awesome')->with(['a' => $a]);
}
Url不能用$a
来实现,它只是/awesome
并在刀片文件中获得此$a
-
<span>a={{ $a }}</span>