【问题标题】:Using where clauses to query from array column in Laravel在 Laravel 中使用 where 子句从数组列中查询
【发布时间】:2019-09-20 05:01:30
【问题描述】:

我的数据库中有一个数组列,如何在 Laravel 中使用 where 子句从它查询?类似:

Model::where( 'languages.en', 'term' )->get()

【问题讨论】:

  • “数组列”到底是什么意思?您是否在列中存储 json 数据?如果是,是json字段还是文本字段?
  • 列名是什么以及我们希望看到的表结构。
  • 如果你的意思是 json 列,你应该这样做'languages->en'
  • 您还有更多信息可以与我们分享吗?

标签: arrays laravel where


【解决方案1】:

你可以这样使用:

$cats = DB::table('categories')->where('id',1)->get();

foreach($cats as $cat) {
    echo "ID: " . $cat->id . ", ";
    echo "Name: " . $cat->name . "<br>";
}

【讨论】:

    【解决方案2】:

    假设您的列值已序列化并使用 Laravel 属性转换。您可以对该序列化列进行类似搜索以匹配键和值。

    Model::where('language', 'like', '%"en":term%');
    

    【讨论】:

      【解决方案3】:

      在你的控制器中

      $langs= DB::table('languages')->where('id','=',1)->get();
      OR
      $langs= Languages::where('id','=',1)->get();
      

      在你的刀片中

      @foreach($langs as $lang)
      {{$lang->id}}
      {{$lang->name}}
      @endforeach
      

      【讨论】:

        猜你喜欢
        • 2019-03-07
        • 2010-10-24
        • 2018-08-06
        • 2021-05-05
        • 1970-01-01
        • 2021-09-18
        • 2021-06-23
        • 1970-01-01
        • 2019-01-29
        相关资源
        最近更新 更多