为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中使用会话存储和获取数据?

在 Laravel 中使用会话存储和获取数据?

PHP
三国纷争 2021-10-15 10:13:57
先感谢您!我有一个会话问题。当我存储和检索数据时,它可以工作。我有一张桌子,计划我有 2 个条目。第 1 次溢价和第 2 次免费增值。这只是一个订阅过程。所以我的问题是,当我点击溢价时,它应该获取唯一的溢价,但在我的情况下,它会打印溢价和免费增值。我的代码如下://Controller1. getplan()public function getPlan(){        $plans = ComposerPlan::get();        Session::put('plan', $plans);        $this->layout->content = View::make('auth.authcomposer.composer-plan', compact('plans'));    }2. getComSignuppublic function getComSignup(){        // Show the page        $value = Session::get('plan');        $this->layout->content = View::make('auth.authcomposer.composer-signup', compact('value'));    }//Blade//for put session<a class="btn btn-default btn-green no-pjax plan-box @if($blanket) hidden @endif" data-plan-id="{{ $plan->id }}" href="{{ URL('/composer-signup')}}">Select Plan</a>//for fetch session@foreach($value as $v) {{$v->name}}@endforeach
查看完整描述

2 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

$plans = ComposerPlan::get();

Session::put('plan', $plans);

没有意义。


您只是将ComposerPlan表中的所有记录放入会话中


解决方案取决于您的ComposerPlan表中的内容。


如果ComposerPlan有可用的计划及其数据:


你应该有另一个关系表“user_id”+“plan_id”。这种关系也可以通过向其添加“plan_id”来存储在用户表中,因为据我了解,用户不应拥有超过 1 个计划


如果ComposerPlan是那个关系表:


$plans = ComposerPlan::where("user_id", auth()->id())->first(); 

//note: first() will get 1 result so no foreach() should be used


查看完整回答
反对 回复 2021-10-15
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

我认为,您需要更改您的查询,因为您同时获得高级订阅和免费增值服务。

也许你需要添加这样的东西,取决于你的数据库。

$plans = ComposerPlan::where('subscription_type','premium')->get();


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信