Передать значение из одного представления в другую конфигурацию маршрутов laravel

Я только начал использовать laravel и в настоящее время использую версию 5.2. Я использую две формы для получения данных. Первая форма в первом представлении и вторая форма во втором представлении. Мне нужно найти способ сообщить второй форме идентификатор формы первой, с которой будет связана вторая форма.

Я знаю, что это можно сделать, передав значения с помощью URL-адреса. Но мне не хватает знания правильного синтаксиса.

1- Как отправлять данные при перенаправлении?

2- Как должен выглядеть маршрут?

3- Как получить доступ к этому значению во втором представлении, чтобы передать это значение при отправке второй формы?

Я много гуглил об этом, но не мог понять этот расширенный синтаксис. Любая помощь приветствуется.

Заранее спасибо.

Это код в контроллере:

public function postCreateProfile(Request $request){
     //Adding attributes from $request to $profile
     $profile->save();
     Session::flash('values',$request->azauj_id);

     return redirect('/add/requirement');

}

public function getCreateRequirement(Request $request){
    $att = Session::get('value');
    Session::flash('value',$att);
    return view('req');
}

public function postCreateRequirement(Request $request){
    dd(Session::get('value'));
}

Формы представляют собой простые html-формы с почтовыми методами отправки. Когда я использую dd(Session::get('value'));, я получаю null. Это означает, что значение не передается. К методу postCreateRequirement, который вызывается при отправке второй формы.

Ниже представлены маршруты.

//For Add Profile Page
Route::get('/add', 'ProfileController@getCreateProfile');
//For Add Profile Form Submission
Route::post('/add', 'ProfileController@postCreateProfile');
//For Add Requirements Page
Route::get('/add/requirement', 'ProfileController@getCreateRequirement');
//For Add Requirements Form Submission
Route::post('/add/requirement', 'ProfileController@postCreateRequirement');

person alimaqsood    schedule 28.12.2015    source источник
comment
Слишком много вопросов, нет кода, сначала внимательно прочитайте laravel.com/docs/5.2   -  person Marcin Nabiałek    schedule 28.12.2015


Ответы (1)


1- Как отправлять данные при переадресации?

Вы можете просто передавать данные с перенаправлением, используя метод ->with(), который создает сеанс, который будет отображаться только на следующей странице. данные сеанса" rel="nofollow">здесь

Пример: скажем, вы хотите отправить статус в свое представление, которое вы добавляете к своему перенаправлению:

            // Where you are redirecting to
redirect("/otherRoute")->with("status", "Profile updated!");
                                 // session name    // data

Теперь вы просто проверяете, существует ли сеанс, и выводите его:

// If the session does not exist it will return false and not create it
@if (session("status"))
    <div class="alert alert-success">
        // echo out the session
        {{ session("status") }}
    </div>
@endif

2- Как должен выглядеть маршрут?

Маршруты должны быть определены в файле route.php, расположенном в каталоге http, при условии, что вы публикуете данные, которые вы должны создать для маршрутов и подключить их к вашему контроллеру следующим образом:

//For Add Profile Page
Route::get('/add', 'ProfileController@getCreateProfile');
//For Add Profile Form Submission
Route::post('/add', 'ProfileController@postCreateProfile');
//For Add Requirements Page
Route::get('/add/requirement', 'ProfileController@getCreateRequirement');
//For Add Requirements Form Submission
Route::post('/add/requirement', 'ProfileController@postCreateRequirement');

3- Как получить доступ к этому значению во втором представлении, чтобы передать это значение при отправке второй формы?

Вы можете просто использовать метод ->with() в своем перенаправлении

public function postCreateProfile(Request $request){
     //Adding attributes from $request to $profile
     $profile->save();

     return redirect('/add/requirement')->with("value",$request->azauj_id);
}

Получить значение

public function getCreateRequirement(Request $request){
    $value = session("value");

    // compact it and trow it in an input to pass it trough to the last controller method
    return view('req');
}

public function postCreateRequirement(Request $request){
    $request->get("value");
}

ИЛИ Создайте глобальный сеанс и затем сбросьте его.

public function postCreateProfile(Request $request){
     //Adding attributes from $request to $profile
     $profile->save();

     session("value",$request->azauj_id);
     return redirect('/add/requirement');
}

Получить значение

public function getCreateRequirement(Request $request){
    return view('req');
}

public function postCreateRequirement(Request $request){
    $value = session("value");
    $request->session()->forget("value");
}

Примечание. Laravel не сбрасывает сеансы, когда кто-то выходит из системы, они останутся, если их не сбросить вручную или с помощью метода $request->session()->flush();.

person Joost    schedule 28.12.2015
comment
Большое спасибо. Это действительно помогло. Большое спасибо за такой описательный и информативный ответ. - person alimaqsood; 29.12.2015