在 laravel 中使用紧凑值重定向

Redirect with compact value in laravel

路线:

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

我无法通过商户压缩值来查看。

产生错误

未定义变量:商户

还有其他最好的方法吗?

试试这个

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

在 blade 文件中:

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

希望对您有所帮助!

Route::view 是为静态视图制作的,静态参数传递如下:

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

既然要传递动态参数,那么最好使用通过相关控制器传递的常规路由action并检索所需的数据。

无论如何你都可以使用 Redirect::route() 比如 :

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

并使用 :

在 blade 端获取传递的变量作为 HTTP 参数
{{ base64_decode(Request::get('merchant')) }}

您好,您可以使用下面的方式获取压缩数据。

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

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

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

谢谢。

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

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

变量名(user_detail)应与compact中的名称相同。 laravel 5.4 和更高版本的正确语法。