2017-01-04 3 views
1

Я пытаюсь создать приложение в laravel 5.3, в котором я получаю переменную из метода запроса, а затем пытаюсь передать эту переменную при перенаправлении на маршруты. Я хочу использовать эту переменную в своем представлении, чтобы я мог отображать значение переменной. В настоящее время я делаю это:Как использовать переменные в маршрутах в laravel?

В моем контроллере я получаю запрос, как это:

public function register(Request $request) 
{ 
    $data = request->only('xyz','abc'); 
    // Do some coding 
    . 
    . 
    $member['xyz'] = $data['xyz']; 
    $member['abc'] = $data['abc']; 
    return redirect('member/memberinfo')->with('member' => $member); 
} 

Теперь я следующий в моих маршрутах:

Route::get('/member/memberinfo', '[email protected]')->with('member', $member); 

Сейчас в MemberController I хотите использовать $member переменную и отобразить это в мой взгляд:

public function memberinfo() 
{ 
    return view('member.memberinfo', ['member' => $member]); 
} 

Но Я получаю сообщение об ошибке в маршрутах файлы

Вызова неопределенного метода Illuminate \ Routing \ Route :: с()

Помогите мне, как я могу добиться этого.

+0

Просто замените '=>' с ',' 'в с ('член' => $ член); '. Надеюсь, это поможет решить вашу проблему! –

+0

Просто прочитайте эту документацию, – Kyslik

ответ

1

Когда вы используете redirect()->with(), вы сохраняете данные на сессии. Таким образом, чтобы получить данные из сессии в контроллере или даже просмотра вы можете использовать session() помощника:

$member = session('member'); // In controller. 

{{ session('member')['xyz'] }} // In view. 

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

Перенаправление:

return redirect('member/memberinfo/xyz/abc') 

Маршрут:

Route::get('/member/memberinfo/{xyz}/{abc}', '[email protected]'); 

Контроллер:

public function memberinfo($xyz, $abc) 
{ 
    return view('member.memberinfo', compact('xyz', 'abc')); 
} 
+1

Спасибо, что постоянно отвечал на мои вопросы. Это помогло мне в изучении laravel! –

+0

Для всех, кто это просматривает, имейте в виду, что вы можете использовать привязку модели маршрута: https://laravel.com/docs/5.6/routing#route-model-binding – GoogleMac

0

Вы можете использовать так:

маршрут:

Route::get('/member/memberinfo', '[email protected]') 

и редирект:

return redirect('member/memberinfo')->with('member', $member); 
0

Вам нужно заменить => с ,

public function register(Request $request) 
{ 
    $data = request->only('xyz','abc'); 
    // Do some coding 
    . 
    . 
    $member['xyz'] = $data['xyz']; 
    $member['abc'] = $data['abc']; 
    return redirect('member/memberinfo')->with('member', $member); // => needs to be replaced with , 
} 

Надеюсь, что это сработает!

0

Заменить линию

return redirect('member/memberinfo')->with('member' => $member); 

в

return redirect('member/memberinfo')->with('member', $member); 

......

Смежные вопросы