Как отправлять данные с помощью перенаправления с Laravel

Я разработал API для отображения всплывающего сообщения при загрузке страницы.

Не все страницы используют всплывающий API. Например, если пользователь переходит на страницу show($id), для запуска всплывающего API не требуется. но в некоторых особых случаях мне нужно, чтобы всплывающее окно запускалось.

Вот мой код, ** этот код только для иллюстрации моей мысли, а не реальный рабочий код **

public function store(){
    validating the input

    saving them

    $id = get the id

    return Redirect::route('clients.show, $id')
}

а в функции show я делаю так:

public function show($id){
   $client =Client::find($id)
   return View::make('clients.profife')->with(array(
   'data' => $client
))

Мой вопрос

Есть ли способ отправить данные из функции store в функцию show с помощью Redirect :: route? а затем в функции show я проверяю, есть ли эта функция show, проверяю, были ли отправлены эти данные, и затем я решаю, запускать ли всплывающее окно api или нет.

}


person Anastasie Laurent    schedule 01.08.2014    source источник


Ответы (3)


В магазине()

return Redirect::route('clients.show, $id')->with( ['data' => $data] );

и в show() прочтите это с

Session::get('data');
person peter.babic    schedule 01.08.2014

Простое перенаправление с использованием вспомогательных функций.

Таким образом, вам не нужно устанавливать ни use Redirect, ни use Session в вашем контроллере.

После того, как вы закончите что-то обрабатывать в своем контроллере, вставьте:

return redirect()->route( 'clients.show' )->with( [ 'id' => $id ] );

Чтобы получить переменную 'id' в маршруте 'clients.show', используйте:

// in PHP
$id = session()->get( 'id' );

// in Blade
{{ session()->get( 'id' ) }}
person vozaldi    schedule 12.09.2017
comment
Это отлично работает и выглядит немного аккуратнее для моих глаз. - person Chuck Le Butt; 27.11.2017
comment
@ChuckLeButt Извините, я улучшил свое объяснение. и спасибо - person vozaldi; 28.11.2017
comment
Я делал тебе комплимент и поставил +1 :) - person Chuck Le Butt; 29.11.2017
comment
или просто session('id'); (laravel 5.7) - person Илья Зеленько; 14.10.2018

Да, вы можете определить путь в маршруте, как показано ниже:

Route::get('store/{id?}/{param1?}/{param2?}/{param3?}', 'clients@store');

Вы можете передать несколько параметров в функцию и прочитать в контроллере, передав аргумент ..

Вы можете определить в контроллере:

public function store(id, param1,param2,param3){
//read the param values
}
person Sikander    schedule 01.08.2014