【问题标题】:Object of class Illuminate\Support\Collection could not be converted to int Laravel 8类 Illuminate\Support\Collection 的对象无法转换为 int Laravel 8
【发布时间】:2021-11-08 15:37:30
【问题描述】:

我在从 Laravel 的查询生成器中检索整数值时遇到问题。它给了我这个错误作为问题的标题:

Object of class Illuminate\Support\Collection could not be converted to int

我也尝试使用 pluck() 方法,但出现同样的错误。

这是代码的代码部分:

 Scegli Corso: <select name="tipo" id="selezionaCorsoIscrizione">
                       {{ $corsi_scii = DB::table('corsoscii')->select('idCorso','nome')->get() }}
                       {{ $post_corso = DB::table('corsoscii')->select('membriMax')->pluck('membriMax') }}
                                    
                       <option value="" selected="selected"> Seleziona Corso
                       </option>
                        @foreach($corsi_scii as $corso_scii)
                        <option value=""> 
                        @if($post_corso == 0)
                           {{ "Il corso ha raggiunto la capienza massima" }}
                        @else
                            {{ $corso_scii->idCorso." - ".$corso_scii->nome }}
                        @endif
                        </option>
                        @endforeach

【问题讨论】:

  • 不要将任何数据库查询放在您的视图中。这是不好的关注点分离。视图不应该负责获取数据,只负责展示数据

标签: laravel laravel-8


【解决方案1】:

pluck() 返回您选择的字段的集合。您无法将其与0 进行比较。请改用value(),它返回第一个可用值或null。

替换这一行

{{ $post_corso = DB::table('corsoscii')->select('membriMax')->pluck('membriMax') }}

{{ $post_corso = DB::table('corsoscii')->select('membriMax')->value('membriMax') }}

【讨论】:

  • 错误是pluck() 我使用value() 而不是你建议的,现在的问题是我想在下拉菜单选择中删除剩下0个位置的课程。条件似乎是正确的,但现在它打印的所有地方都达到了限制,即使这部分代码不是这种情况。 @if($post_corso == 0) {{ "Il corso ha raggiunto la capienza massima"}}
  • 好的,我们找到了解决问题的新方法,非常感谢您
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
  • 2019-06-27
  • 2019-01-10
  • 2015-09-23
相关资源
最近更新 更多