Laravel-重定向到包含数据的页面并在视图中显示它

问题描述 投票:0回答:3

我正在使用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中不存在参数,则刷新时应将其保留在刷新位置,这样变量值将不会显示在视图中吗?还有其他方法吗?

laravel redirect
3个回答
0
投票
然后,您应该能够使用刀片语法$a或直接使用{{$a}}访问刀片模板中的Session::get('a');

0
投票
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);


0
投票
这里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>

© www.soinside.com 2019 - 2024. All rights reserved.