在 laravel 中使用紧凑值重定向

Posted

技术标签:

【中文标题】在 laravel 中使用紧凑值重定向【英文标题】:Redirect with compact value in laravel 【发布时间】:2019-02-12 13:43:07 【问题描述】:

路线:

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

我无法将商家压缩值传递给查看。

产生错误

未定义变量:商家

还有其他最好的方法吗?

【问题讨论】:

如果你试图重定向到一个路由,是不是应该是redirect()->route('Merchant route')? 我试过了,即使紧凑的值也不能通过@OluwatobiSamuelOmisakin 您传递的是merchant,但使用的是merch?实际上,这将导致未定义的变量错误。 那是拼写错误@Wreigh 【参考方案1】:

试试这个

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

在刀片文件中:

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

希望对你有帮助!

【讨论】:

但是我怎样才能将单个值从中分离出来 使用 foreach 循环 Dono 如何编写 Session:进入 foreach 循环 这会将值传递给会话而不是直接传递给刀片上下文【参考方案2】:

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

【讨论】:

我已经在本地尝试过并且工作正常,有什么问题? Request::get('merchant') 什么都不显示 更新后用当前内容更新您的问题 但首先将 Merchant::whereId($id)-&gt;get(); 替换为 Merchant::find($id); 并确保 dd($merchant) 返回正确的值 但是我怎样才能将单个值从中分离出来【参考方案3】:

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

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

变量名(user_detail) 应该和compact 中的名字一样。 laravel 5.4 及更高版本的正确语法。

【讨论】:

【参考方案4】:

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

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

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

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

谢谢。

【讨论】:

@SamuelHenry 你在你的控制器文件中传递这个你想要完成过程并重定向到 URL 的地方,然后在它不起作用之后,如果我有的话,我会给你另一个例子。很抱歉给您带来不便。

以上是关于在 laravel 中使用紧凑值重定向的主要内容,如果未能解决你的问题,请参考以下文章

React Page 在根据 redux 值重定向之前闪烁

在 Azure OIDC 注销后,应该将啥内容安全策略标头值重定向回应用程序

Vue路由器和vuex基于值重定向的问题

PHP - 如何使用cookie中的值重定向到个人资料页面

Laravel:模型中的动态关系

如何在 Laravel 中使用旧输入重定向?