Редирект с компактным значением в laravel - PullRequest
0 голосов
/ 07 сентября 2018

Маршрут:

Route::get('merchantTrans/{id}','MerchantController@merchant');

Торговый контроллер:

public function merchant($id){
    $merchant = Merchant::whereId($id)->get();
    return redirect('Merchant view')->with(compact('merchant'));
}

Просмотр маршрута:

Route::view('Merchant view','merchant.listview')->name('Merchant view');

Я не могу передать компактное значение продавца для просмотра.

Произведите ошибку

Не определена переменная: торговец

Есть ли другой лучший способ?

Ответы [ 4 ]

0 голосов
/ 07 сентября 2018

Вы можете передать значение из контроллера для просмотра с помощью компактного Точный синтаксис должен быть таким

$user_detail=array('field1'=>1,'field2'=>2);
return view('dashboard',compact('user_detail'));

Имя переменной (user_detail) должно совпадать с именем в компактном. Правильный синтаксис для Laravel 5.4 и более высоких версий.

0 голосов
/ 07 сентября 2018

Route::view сделан для статических представлений со статическими параметрами, переданными как:

Route::view('Merchant view','merchant.listview', ['param1' => 'value1']);

Поскольку вы хотите передать динамические параметры, тогда будет лучше использовать обычный маршрут, проходящий через соответствующий контроллер action и извлекающий нужные данные.

В любом случае вы можете использовать Redirect::route() как:

return Redirect::route('Merchant view',['merchant' => base64_encode($merchant)]);

И получить переданную переменную на стороне блейда в качестве параметра HTTP, используя:

{{ base64_decode(Request::get('merchant')) }}
0 голосов
/ 07 сентября 2018

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

return view('admin/users/userdetails', compact('transaction', 'title'));

OR

return redirect('/userdetails', compact('transaction', 'title'));

В моем проекте используется следующий синтаксис для сжатия данных при перенаправлении на другую страницу.

спасибо.

0 голосов
/ 07 сентября 2018

Попробуйте это

return redirect()->route('Merchant view')->with( ['merchant' => $merchant] );

В блейд-файле:

<?php $merchants = Session::get('merchant'); ?>
{{ @foreach ($merchants as $merchant)
    //your code
@endforeach }}

Надеюсь, это поможет вам!

...