【问题标题】:How to assign value if not increment? laravel如果不增加如何赋值?拉拉维尔
【发布时间】:2020-05-05 12:29:06
【问题描述】:

如果不存在,我想分配一个值,否则增加该值。下面是我想要实现的一行代码。

session()->put(['validation_count' => session('validation_count')++ ?? 1]);

但我在下面结束了这个错误。

不能在写上下文中使用函数返回值

有人知道完美的单线解决方案吗?

【问题讨论】:

    标签: php laravel laravel-session


    【解决方案1】:
    $validationCount = session('validation_count');
    session()->put(['validation_count' =>  ($validationCount ? $validationCount++ : 1]);
    

    评论更新:

    我建议使用可变用法,但如果您想要一行:

    session ()->put ( ['validation_count' => ( session ( 'validation_count' ) ? session ( 'validation_count' ) + 1 : 1 )] );
    session ()->save ();
    

    【讨论】:

    • 更新的答案返回错误不能在写上下文中使用函数返回值
    • 请不要为其他人更新或删除评论。我又更新了。对不起我的语法错误
    • 好的,只需在我的答案中添加最后一行。
    • 仍保持在值 1
    • 可能你还有一个错误。你在哪里用这个?在控制器中?
    【解决方案2】:

    在一行中,您可以这样做:

    session()->put(['validation_count' => (session('validation_count') ? session('validation_count') + 1 : 1)]);

    【讨论】:

    • 我刚刚编辑了它,缺少一个括号。这个对我有用。尝试写两次var_dump(session('validation_count')),它应该打印2。
    • 仍然始终保持在值 1。请在回答之前先尝试您的解决方案。
    • 我试过了,对我有用。我写了两次,dd 它显示 2。你可能做错了什么。
    • 不,我 session()->all() 但值仍然保持在 1
    猜你喜欢
    • 2016-09-19
    • 2015-10-30
    • 2018-03-13
    • 2016-10-03
    • 2015-03-04
    • 2022-11-30
    • 2020-03-29
    • 1970-01-01
    • 2019-12-25
    相关资源
    最近更新 更多