在Laravel中以紧凑值重定向

时间:2018-09-07 08:33:07

标签: laravel laravel-5.6 http-redirect

路线:

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 :(得分:3)

尝试一下

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

在刀片文件中:

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

希望它对您有帮助!

答案 1 :(得分:0)

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')) }}

答案 2 :(得分:0)

您好,您可以使用以下方法获取紧凑数据。

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

OR

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

我在项目中使用了以下语法来压缩数据,同时重定向到其他页面。

谢谢。

答案 3 :(得分:0)

您可以使用紧凑型将值从控制器传递到视图 确切的语法应该是这样

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

变量名称(user_detail)应与紧凑型名称相同。 laravel 5.4和heigher版本的正确语法。