Laravel - перенаправить на страницу с данными и показать их в поле зрения - PullRequest
0 голосов
/ 10 января 2020

Я использую 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 есть параметр, который я хочу удалить sh.

Q1) как отобразить переменную $a в поле зрения?

Q2) как удалить параметр из URL-адреса или оставить его там, как по ссылке refre sh, если параметр отсутствует в URL-адресе, то значение переменной не будет отображаться в поле зрения? Есть ли другой способ?

Ответы [ 3 ]

0 голосов
/ 10 января 2020
return redirect()->route('awesome', ['a' => $a]);

Здесь a - это параметр маршрута uri как route(), метод-первый аргумент - это route name, а второй аргумент - это список uri parameter, который будет отображаться в вашем URL. Теперь, если мы поступим следующим образом -

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>
0 голосов
/ 11 января 2020

Q1) как я могу отобразить переменную $ a в поле зрения? Вы должны добавить * * * * свою переменную в сеанс: 1 добавьте эту переменную в сеанс, используя Session :: fla sh ('a', $ 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 или я должен оставить его там, как при refre sh, если параметр отсутствует в URL, то значение переменной не будет отображаться в поле зрения? Любой другой способ?

выше решение будет работать и для этого вопроса, но если вы хотите иметь этот параметр для следующих refre sh страниц, вы должны заменить его на:

Session::push('a', $a);
0 голосов
/ 10 января 2020

Попробуйте: return redirect('awesome')->with('a', $a);

Тогда вы сможете получить доступ к $a в своем шаблоне блейда, используя либо синтаксис блейда {{$a}}, либо прямой доступ к нему с помощью Session::get('a');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...